crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Подключение библиотеки crashrpt к Qt5.4.0(VS 2010)
Trisch
  опции профиля:
сообщение 17.2.2015, 18:30
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 379
Регистрация: 30.1.2012
Из: Запорожье
Пользователь №: 3169

Спасибо сказали: 24 раз(а)




Репутация:   0  


Как подключить библиотеку 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
  опции профиля:
сообщение 18.2.2015, 9:45
Сообщение #2


Профессионал
*****

Группа: Модератор
Сообщений: 1609
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


а у тебя кодировка юникодовская? судя по названию, эта функция требует юникод.
ещё битность можешь проверить. иногда не линкуется из-за разных настроек битности.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Trisch
  опции профиля:
сообщение 18.2.2015, 10:24
Сообщение #3


Активный участник
***

Группа: Участник
Сообщений: 379
Регистрация: 30.1.2012
Из: Запорожье
Пользователь №: 3169

Спасибо сказали: 24 раз(а)




Репутация:   0  


Цитата(Iron Bug @ 18.2.2015, 9:45) *
а у тебя кодировка юникодовская? судя по названию, эта функция требует юникод.
ещё битность можешь проверить. иногда не линкуется из-за разных настроек битности.


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

Юитность это 32, 64. Ну я библиотеку пересобирал тем же компилятором который использует Qt, думаю тут тоже все норм.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Trisch
  опции профиля:
сообщение 18.2.2015, 11:43
Сообщение #4


Активный участник
***

Группа: Участник
Сообщений: 379
Регистрация: 30.1.2012
Из: Запорожье
Пользователь №: 3169

Спасибо сказали: 24 раз(а)




Репутация:   0  


А может это быть из за того библиотека просит для зборки проекта, такие параметры как -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
  опции профиля:
сообщение 18.2.2015, 12:39
Сообщение #5


Профессионал
*****

Группа: Модератор
Сообщений: 1609
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


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

и да, -Zc:wchar_t - это не юникод, это просто поддержка wchar_t как нативного типа. а юникод определяется (если правильно помню) определением макроса _UNICODE.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Trisch
  опции профиля:
сообщение 18.2.2015, 13:42
Сообщение #6


Активный участник
***

Группа: Участник
Сообщений: 379
Регистрация: 30.1.2012
Из: Запорожье
Пользователь №: 3169

Спасибо сказали: 24 раз(а)




Репутация:   0  


Проверил при помощи depends файлы .h и .lib

Выдало такую ошибку:
Error: At least one file was not a 32-bit or 64-bit Windows module.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 19.2.2015, 8:48
Сообщение #7


Профессионал
*****

Группа: Модератор
Сообщений: 1609
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


Цитата(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
  опции профиля:
сообщение 19.2.2015, 15:45
Сообщение #8


Активный участник
***

Группа: Участник
Сообщений: 379
Регистрация: 30.1.2012
Из: Запорожье
Пользователь №: 3169

Спасибо сказали: 24 раз(а)




Репутация:   0  


Да, скорей всего.
После полной пересборки библиотеки и проекта все заработало.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 8.8.2022, 19:48