gpt4 book ai didi

c - 如何链接到 FreeImage?

转载 作者:太空宇宙 更新时间:2023-11-04 02:02:22 24 4
gpt4 key购买 nike

我使用的是 Kubuntu 14.04,并安装了 FreeImage 库

sudo apt-get install libfreeimage-dev

据我所知,它已正确安装,/usr/include 中的 FreeImage.hlibfreeimage.a 中的/usr/lib。然而,这个微不足道的 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.a而不是 libfreeimage.so,表示您正在尝试使用静态库。

当链接到静态库时,您需要在显式源/对象参数之后向编译器提供库参数,因为编译器只会处理库中尚未解析的符号:

gcc -o fitest fitest.c -lfreeimage

如果您在任何源/对象参数之前给出一个静态库参数,那么,还没有未解析的符号,也不会从库中选取任何符号,而是在最后将这些符号视为未解析。

关于c - 如何链接到 FreeImage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25633202/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com