【问题标题】:Errors while trying to compile with external libraries尝试使用外部库编译时出错
【发布时间】:2013-07-26 18:16:03
【问题描述】:

我已经下载了mimetic library的安装文件, 并按照安装说明进行操作。

./configure

一个脚本,在检查一系列事情后创建 make 文件。

make 

编译 cpp 文件,之后不同的 .o 和 .lo 文件出现在原始文件夹中。

make install 

似乎做了很多,但我似乎唯一注意到的是一个模拟目录 与所有头文件一起出现在 /usr/local/include 下。

我尝试编译最简单的主文件: (图书馆网站提供:original example

#include <mimetic/mimetic.h>

using namespace mimetic;

int main()
{
    MimeEntity me;
    return 0;
}

我正在使用以下命令进行编译(在 CentOS 5.7 上,gcc 版本:4.1.2):

g++ mimetic.cpp

我得到的错误:

/tmp/ccWnsteO.o: In function `main':
mimetic.cpp:(.text+0x80): undefined reference to `mimetic::MimeEntity::MimeEntity()'
mimetic.cpp:(.text+0x91): undefined reference to `mimetic::MimeEntity::~MimeEntity()'
collect2: ld returned 1 exit status

据我了解,找到了头文件,但找到了源/库本身 不见了。

MimeEntity 构造函数声明出现在:/usr/local/include/mimetic/mimeentity.h 当我搜索 mimeentity 时,我得到以下信息:

/home/mimetic-0.9.7/mimetic/mimeentity.o
/home/mimetic-0.9.7/mimetic/mimeentity.h
/home/mimetic-0.9.7/mimetic/mimeentitylist.h
/home/mimetic-0.9.7/mimetic/mimeentity.cxx
/home/mimetic-0.9.7/mimetic/.libs/mimeentity.o
/home/mimetic-0.9.7/mimetic/mimeentity.lo
/home/mimetic-0.9.7/mimetic/.deps/mimeentity.Plo
/usr/local/include/mimetic/mimeentity.h
/usr/local/include/mimetic/mimeentitylist.h 

我已尝试使用库的搜索路径,但出现相同的错误

g++ mimetic.cpp -L/home/mimetic-0.9.7/mimetic/

当我尝试编译主 mimetic.cpp 文件时,发生了一些奇怪的事情 用线

MimeEntity me;

改为

MimeEntity me();

它编译。

【问题讨论】:

    标签: c++ linux gcc


    【解决方案1】:

    您收到链接器错误仅仅是因为您在编译测试源文件时没有引用库。它需要是这样的:

    g++ mimetic.cpp -l<libraryname>
    

    添加大括号时它编译的原因是您实际上是在声明一个名为“me”的函数,该函数返回一个 MimeEntry。当它编译时,它并没有做你想做的事。

    【讨论】:

      【解决方案2】:

      您用来构建模拟示例的命令似乎不完整。您指定的是库搜索补丁 (-L),而不是库本身。

      1. 确保 -L 选项指定了模拟库的位置
      2. 添加 -l'the-name-of-the-mimetic-library'。我的猜测是 -limetic
      3. 为标题的位置添加 -I(即大写 i)选项。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-28
        • 1970-01-01
        • 2015-09-25
        相关资源
        最近更新 更多