首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何链接到FreeImage?

如何链接到FreeImage?
EN

Stack Overflow用户
提问于 2014-09-02 22:12:08
回答 1查看 4.7K关注 0票数 1

我正在使用Kubuntu14.04,并将FreeImage库安装在

代码语言:javascript
复制
sudo apt-get install libfreeimage-dev

据我所知,它是正确安装的,FreeImage.h/usr/include中,libfreeimage.a/usr/lib中。然而,这个琐碎的C程序

代码语言:javascript
复制
#include <FreeImage.h>

int main(int argc, char **argv) {

  FreeImage_Initialise(FALSE);
  FreeImage_DeInitialise();
  return 0;

}

无法编译。正在运行

代码语言:javascript
复制
gcc -lfreeimage fitest.c -o fitest

输出

代码语言:javascript
复制
/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

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-02 22:27:11

通常情况下,共享库不是这种情况,而只是静态库,但无论如何,我还是要尝试一下,因为它与您的症状相匹配,而且您还提到了libfreeimage.a而不是libfreeimage.so,这表明您正在尝试使用静态库。

当针对静态库进行链接时,需要在解释源/对象参数之后向编译器提供库参数,因为编译器将只处理库中尚未解决的符号:

代码语言:javascript
复制
gcc -o fitest fitest.c -lfreeimage

如果在任何源/对象参数之前提供静态库参数,则没有任何符号未得到解决,库中将不会选择任何符号,相反,这些符号最终将被视为未解决。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25633202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档