2015-04-22 32 views
0

Я пытаюсь написать приложение, которое сохраняет 16 бит tiff. Я использую QT Creator и QT API, но не могу использовать функции QT tiff из-за необходимости в 16 бит. Мое приложение должно работать как в Windows, так и в Linux.Не удается связать с libtiff в QT Creator/MSVC

Версия Linux отлично работает. Когда я пытаюсь ссылка в Visual C++/Win 7, я получаю следующие сообщения об ошибках:

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 

Соответствующих части моего .pro вида файла, как это:

INCLUDEPATH += "C:\Program Files (x86)\GnuWin32\include" 
LIBS += -L"C:\Program Files (x86)\GnuWin32\lib" -llibtiff 

Я гугл и искал во всем, и кажется, что проблема связана с C/C++ именами incompatabilities. Есть несколько предложений относительно того, как исправить это внутри Visual Studio, но я работаю в среде QT и вообще не использую VS - просто компилятор. Есть ли ответ на эту проблему?

Моя среда: QT 5.4.0, Visual Studio 12, выиграть 7 Pro, LibTIFF двоичные файлы, загруженные из http://gnuwin32.sourceforge.net/packages/tiff.htm

+0

Не следует ли связывать библиотеку как '-ltiff' не' -llibtiff'? –

+0

Нет, если бы это был linux, или если бы я использовал Mingw, это было бы -ltiff, но Visual Studio хочет, чтобы оно было написано – jhowland

ответ

0

Вам нужно LibTIFF скомпилированные для MSVC. MSVC - это значительная часть вашей среды, а не Qt.

Для получения информации о его создании см. http://www.remotesensing.org/libtiff/build.html#PC (хотя я не уверен, что это актуально), или есть другие ответы на stackoverflow о том, как это сделать (например, Installing LibTiff to Visual Studio 2010).

+0

Я успешно построил libtiff под MSVC в соответствии с инструкциями, и это изменило проблему, но я до сих пор не могу связать с libtiff functions - теперь я получаю следующее: FrameSaveRunnable.obj: ошибка LNK2019: неразрешенный внешний символ TIFFWriteScanline, на который ссылается функция «protected: virtual void __cdecl FrameSaveRunnable :: run (void)» (? run @ FrameSaveRunnable @@ MEAAXXZ) – jhowland

 Смежные вопросы

  • Нет связанных вопросов^_^