未定义的引用

时间:2011-02-06 16:00:06

标签: c++ qt ubuntu nokia n900

我有以下问题:

我在64位Ubuntu上使用32位版本的Qt。在我的项目中,我想要包含库FCam,以便为诺基亚N900手机的相机进行编程。当我在项目文件中包含库的路径时,似乎Qt找不到它或者只是不使用它,因为我收到以下错误消息:

undefined reference to "FCam::Image::Image(FCam::Image const&)"

My Libs-line看起来像这样:

LIBS += -lpthread -ljpeg  -Llib -L/home/username/FCam

我不知道为什么这不起作用,因为我有另一个可行的示例项目。我也尝试了一些线路的变化,但是徒劳无功。

感谢您的回答, Tsveti

2 个答案:

答案 0 :(得分:1)

使用-L / home / username / FCam,您可以告诉链接器在查找时查看该目录 它应链接的库。您需要告诉它要再次链接的库(用-l完成)。 我不知道你的lib,但似乎你应该添加一个--lfcam或类似的东西。

答案 1 :(得分:1)

看起来你混淆了你的libs语句的正确顺序 - 从我得到的一些信息中我期望这样:

LIBS += -L/home/username/FCam -lFCam -lpthread -ljpeg

为什么按此顺序?

因为首先你必须通过-L [MY_LIB_DIR]定义库的位置。

接下来,你必须通过-lMyLib添加你的库 - 你的库文件必须命名为libMyLib.a或libMyLib.so。

最后你添加了系统库,因为你的应用程序或你的libs可能会发生你的系统库依赖pthread和jpeg的依赖。

试试新订单,我相信你会得到它;)

侨, 克里斯