2015-04-22 108 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