libtiff构建未定义的对_imp__TIFFOpen的引用错误

问题描述

这可能是一个琐碎的新手问题,但是,我不知道该如何解决

我正在尝试使用libtiff(从here复制的测试程序)构建测试程序。我已经下载了静态库libtiff.lib以及所需的头文件tiffio.h。当我毫无问题地编译主要的c函数时,我有一个main.o文件。当我尝试使用此命令将main.o与libtiff链接

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 ,并且所有必需的文件都在同一目录中。

不知道如何正确链接

谢谢。

解决方法

正如注释中所建议的那样,反转作为参数传递的对象的顺序就足够了:

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