C++ 尝试使用外部库编译时出错

C++ 尝试使用外部库编译时出错,c++,linux,gcc,C++,Linux,Gcc,我已经下载了安装文件, 并按照安装说明进行操作 ./configure 在检查一系列内容后创建make文件的脚本 make 编译cpp文件,在原始文件夹中显示不同的.o和.lo文件后 make install 似乎做了很多,但我唯一注意到的是一个模拟目录 与所有头文件一起显示在/usr/local/include下 然后我尝试编译最简单的主文件: 如图书馆网站所示: 我得到的错误是: /tmp/ccWnsteO.o: In function `main': mimetic.cpp:(.

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

./configure
在检查一系列内容后创建make文件的脚本

make 
编译cpp文件,在原始文件夹中显示不同的.o和.lo文件后

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

然后我尝试编译最简单的主文件: 如图书馆网站所示:

我得到的错误是:

/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/
当我试图编译主mimic.cpp文件时,发生了一些奇怪的事情 排队

MimeEntity me;
改为

MimeEntity me();

它编译

编译测试源文件时没有引用库,因此出现链接器错误。它需要类似于:

g++ mimetic.cpp -l<libraryname>

当您添加大括号时它会编译的原因是您实际上是在声明一个名为“me”的函数,该函数返回一个MimeEntry。编译时,它不会执行您想要的操作。

您会收到链接器错误,原因很简单,因为您在编译测试源文件时没有引用库。它需要类似于:

g++ mimetic.cpp -l<libraryname>

当您添加大括号时它会编译的原因是您实际上是在声明一个名为“me”的函数,该函数返回一个MimeEntry。编译时,它不会执行您想要的操作。

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

确保-L选项指定了模拟库的位置 添加-l“模拟库的名称”。我猜会很简单 添加-I,即标题位置的大写字母I选项。
用于构建模拟示例的命令似乎不完整。您指定的是库搜索补丁-L,而不是库本身

确保-L选项指定了模拟库的位置 添加-l“模拟库的名称”。我猜会很简单 添加-I,即标题位置的大写字母I选项。
g++ mimetic.cpp -l<libraryname>