【发布时间】:2014-09-02 22:12:08
【问题描述】:
我使用的是 Kubuntu 14.04,并安装了 FreeImage 库
sudo apt-get install libfreeimage-dev
据我所知,它已正确安装,/usr/include 中的FreeImage.h 和/usr/lib 中的libfreeimage.a。然而,这个琐碎的 C 程序
#include <FreeImage.h>
int main(int argc, char **argv) {
FreeImage_Initialise(FALSE);
FreeImage_DeInitialise();
return 0;
}
编译失败。跑步
gcc -lfreeimage fitest.c -o fitest
输出
/tmp/ccFbb0HQ.o: In function `main':
fitest.c:(.text+0x15): undefined reference to `FreeImage_Initialise'
fitest.c:(.text+0x1a): undefined reference to `FreeImage_DeInitialise'
collect2: error: ld returned 1 exit status
我做错了什么?
【问题讨论】:
-
检查大小写。
-
这有点奇怪,因为当我完全复制粘贴您的代码并使用相同的命令编译它并安装
libfreeimage-dev时,它编译得非常好。 -
您提到
libfreeimage.a而不是libfreeimage.so,您通常会实际链接到它。是否有一个原因?您是否以某种方式明确地尝试静态链接您的程序或其他东西(在这种情况下,为什么在您的编译命令中没有显示)? 是否libfreeimage.so正确安装?