2015-04-22 127 views
0

我想写一个应用程序,保存16位tiffs。我使用QT Creator和QT API,但由于16位需要,无法使用QT tiff功能。我的应用程序需要在Windows和Linux上运行。无法链接QT Creator/MSVC中的libtiff

Linux版本正常工作。当我尝试在Visual C链接++/Win 7的,我得到了以下错误消息:像这样我的.pro文件的样子

FrameSaveRunnable.obj : error LNK2019: unresolved external symbol __imp_TIFFClose referenced in function "protected: virtual void __cdecl FrameSaveRunnable::run(void)" ([email protected]@@MEAAXXZ) 
FrameSaveRunnable.obj : error LNK2019: unresolved external symbol __imp_TIFFSetField referenced in function "protected: virtual void __cdecl FrameSaveRunnable::run(void)" ([email protected]@@MEAAXXZ) 
FrameSaveRunnable.obj : error LNK2019: unresolved external symbol __imp_TIFFWriteScanline referenced in function "protected: virtual void __cdecl FrameSaveRunnable::run(void)" ([email protected]@@MEAAXXZ) 
FrameSaveRunnable.obj : error LNK2019: unresolved external symbol __imp_TIFFOpen referenced in function "protected: virtual void __cdecl FrameSaveRunnable::run(void)" ([email protected]@@MEAAXXZ) 
debug\avtcam.exe : fatal error LNK1120: 4 unresolved externals 

相关部分:

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,赢得http://gnuwin32.sourceforge.net/packages/tiff.htm

+0

图书馆不应该链接为'-ltiff'而不是'-llibtiff'? –

+0

不,如果它是Linux或如果我使用Mingw,它将是 - 提示,但Visual Studio要它拼出来 – jhowland

回答

0

下载7专业版,二进制文件的libtiff你需要的libtiff编译MSVC。 MSVC是你的环境的重要组成部分,而不是Qt。

请参阅http://www.remotesensing.org/libtiff/build.html#PC以获取关于构建它的说明(尽管我不确定它们是否为最新版本),或者有关于如何做到这一点的其他答案(例如Installing LibTiff to Visual Studio 2010)。

+0

我成功地在MSVC下建立libtiff按照说明和它改变了问题,但我仍然无法链接libtiff函数 - 现在我得到以下内容:FrameSaveRunnable.obj:错误LNK2019:无法解析的外部符号TIFFWriteScanline在函数“protected:virtual void __cdecl FrameSaveRunnable :: run(void)”中引用(?run @FrameSaveRunnable @@ MEAAXXZ) – jhowland