Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Подключение библиотеки crashrpt к Qt5.4.0(VS 2010)
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt инструментарий
Trisch
Как подключить библиотеку crashrpt к Qt5.4.0(VS 2010)?

Я пытался подключить библиотеку примерно таким образом:
Цитата
LIBS += -L"C:/путь/CrashRpt/lib"
LIBS += CrashRpt1402.lib CrashRptProbe1402.lib


Но в итоге получаю примерно такие ошибки:

Цитата
main.obj:-1: error: LNK2019: unresolved external symbol _crInstallW@4 referenced in function _main
Iron Bug
а у тебя кодировка юникодовская? судя по названию, эта функция требует юникод.
ещё битность можешь проверить. иногда не линкуется из-за разных настроек битности.
Trisch
Цитата(Iron Bug @ 18.2.2015, 9:45) *
а у тебя кодировка юникодовская? судя по названию, эта функция требует юникод.
ещё битность можешь проверить. иногда не линкуется из-за разных настроек битности.


Да, уникодная, UTF-8.

Юитность это 32, 64. Ну я библиотеку пересобирал тем же компилятором который использует Qt, думаю тут тоже все норм.
Trisch
А может это быть из за того библиотека просит для зборки проекта, такие параметры как -MT -DEBUG
А проект соберается примерно с такими параметрами:
cl -c -nologo -Zm200 -Zc:wchar_t -O2 -MD -GR -W3 -w34100 -w34189 -EHsc -DUNICODE -DWIN32 -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DNDEBUG


хотя я прописал в .pro
QMAKE_CFLAGS_RELEASE += -O2 -MT -DEBUG
Iron Bug
-MT - это статическая линковка стандартных библиотек. -MD - динамическая. но обычно если возникает такой конфликт, то линковщик ругается на то, что некоторые функции определены дважды и это выглядит по-другому.
а тут он не нашёл нужной функции в библиотеках. посмотри каким-нить Depends'ом, что экспортирует библиотека и чего ей не хватает.

и да, -Zc:wchar_t - это не юникод, это просто поддержка wchar_t как нативного типа. а юникод определяется (если правильно помню) определением макроса _UNICODE.
Trisch
Проверил при помощи depends файлы .h и .lib

Выдало такую ошибку:
Error: At least one file was not a 32-bit or 64-bit Windows module.
Iron Bug
Цитата(Trisch @ 18.2.2015, 15:42) *
Проверил при помощи depends файлы .h и .lib

Выдало такую ошибку:
Error: At least one file was not a 32-bit or 64-bit Windows module.

да, она не жрёт lib-файлы. только dll-ки. попробуй так:
Цитата
dumpbin.exe -headers foo.lib

я, честно говоря, плохо помню, потому что давно уже не пишу под венду. в общем, тебе нужен инструмент для просмотра экспорта и импорта lib-файлов. там должно быть что-то стандартное, может, есть какие-то утилиты для большего удобства.

я подозреваю, что у тебя каким-то образом получилась несовместимость юникода и не-юникода. одна часть собралась с юникодом, а другая - без него.
Trisch
Да, скорей всего.
После полной пересборки библиотеки и проекта все заработало.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2018 IPS, Inc.