问题描述
我正在尝试使用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