我正在尝试编写一个可以节省16位tiff的应用程序。我使用QT Creator和QT API,但由于需要16位,因此无法使用QT tiff功能。我的应用程序需要在Windows和Linux中都能运行。
Linux版本运行正常。当我尝试在Visual C ++ / Win 7中链接时,我收到以下错误消息:
FrameSaveRunnable.obj : error LNK2019: unresolved external symbol __imp_TIFFClose referenced in function "protected: virtual void __cdecl FrameSaveRunnable::run(void)" (?run@FrameSaveRunnable@@MEAAXXZ)
FrameSaveRunnable.obj : error LNK2019: unresolved external symbol __imp_TIFFSetField referenced in function "protected: virtual void __cdecl FrameSaveRunnable::run(void)" (?run@FrameSaveRunnable@@MEAAXXZ)
FrameSaveRunnable.obj : error LNK2019: unresolved external symbol __imp_TIFFWriteScanline referenced in function "protected: virtual void __cdecl FrameSaveRunnable::run(void)" (?run@FrameSaveRunnable@@MEAAXXZ)
FrameSaveRunnable.obj : error LNK2019: unresolved external symbol __imp_TIFFOpen referenced in function "protected: virtual void __cdecl FrameSaveRunnable::run(void)" (?run@FrameSaveRunnable@@MEAAXXZ)
debug\avtcam.exe : fatal error LNK1120: 4 unresolved externals
我的.pro文件的相关部分如下所示:
INCLUDEPATH += "C:\Program Files (x86)\GnuWin32\include"
LIBS += -L"C:\Program Files (x86)\GnuWin32\lib" -llibtiff
我已经google搜索并搜索了全部,似乎问题与C / C ++名称不兼容性有关。关于如何在Visual Studio中修复它有一些建议,但我在QT环境中工作,根本不使用VS - 只是编译器。这个问题有答案吗?
我的环境:QT 5.4.0,Visual Studio 12,win 7 Pro,从http://gnuwin32.sourceforge.net/packages/tiff.htm下载的libtiff二进制文件
答案 0 :(得分:0)
您需要为MSVC编译libtiff。 MSVC是您环境的重要组成部分,而不是Qt。
有关构建它的说明,请参阅http://www.remotesensing.org/libtiff/build.html#PC(虽然我不确定这些是否是最新的),或者有关于如何执行此操作的stackoverflow还有其他答案(例如Installing LibTiff to Visual Studio 2010 )。