我已下载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();
它编译。
答案 0 :(得分:2)
您收到链接器错误只是因为编译测试源文件时没有引用库。它需要像:
g++ mimetic.cpp -l<libraryname>
添加大括号时编译的原因是你真的声明了一个名为'me'的函数,它返回一个MimeEntry。虽然它编译,但它没有做你想要的。
答案 1 :(得分:2)
用于构建模拟示例的命令似乎不完整。您正在指定库搜索补丁(-L),但不指定库本身。