首页 > 解决方案 > libtiff 构建对 `_imp__TIFFOpen' 错误的未定义引用

问题描述

可能这是一个微不足道的新手问题,但是,我不知道如何解决它。

我正在尝试使用(从此处libtiff复制的测试程序)构建一个测试程序。我已经下载了静态库以及所需的头文件。当我编译主 c 函数没有问题时,我有一个文件。当我尝试使用此命令链接 main.olibtiff.libtiffio.hmain.olibtiff

gcc -g -Wall -o test.exe ./libtiff.lib ./test.o

我有这个错误:

undefined reference to `_imp__TIFFOpen'

我用nm -A libtiff.lib命令查看了 lib 文件,我可以找到这一行

libtiff.lib:libtiff3.dll:00000000 I __imp__TIFFOpen

但它有 2 个前导下划线,而不是链接器要求的 1 个。我在 Windows 7 上使用 mingw,所有必需的文件都在同一个目录中。

不知道如何链接没有错误。

提前致谢。

标签: clinkermingwundefined-referencelibtiff

解决方案


正如评论中所建议的,颠倒作为参数传递的对象的顺序就足够了:

gcc -g -Wall -o test.exe ./test.o ./libtiff.lib

推荐阅读