Russian Qt Forum

Компиляторы и платформы => Windows => Тема начата: MaxoBik от Июнь 08, 2015, 18:24



Название: /DELAYLOAD проблемы.
Отправлено: MaxoBik от Июнь 08, 2015, 18:24
Доброго времени суток, пытаюсь сделать отложенную загрузку одной сторонней библиотеки, делаю вот так:
Код:
 CONFIG(release, debug|release) {
   QMAKE_LFLAGS_RELEASE += /DELAYLOAD:someLib-1.dll
 } else:CONFIG(debug, debug|release) {
    QMAKE_LFLAGS_DEBUG += /DELAYLOAD:someLib-1.dll
 }
Появляется такая вот ошибка:
Цитировать
someLib-1.lib(someLib-1.dll):-1: ошибка: LNK2001: unresolved external symbol ___delayLoadHelper2@8
Файл не найден:someLib-1.lib(someLib-1.dll)
Если указываю к примеру полный путь к библиотеке(или вообще любой другой путь, пускай даже не существующий):
Код:
 CONFIG(release, debug|release) {
   QMAKE_LFLAGS_RELEASE += /DELAYLOAD:D:\some3RDSource\bin\someLib-1.dll
 } else:CONFIG(debug, debug|release) {
    QMAKE_LFLAGS_DEBUG += /DELAYLOAD:D:\some3RDSource\bin\someLib-1.dll
 }
то получаю такую ошибку:
Цитировать
:-1: предупреждение: LNK4199: /DELAYLOAD:D:\some3RDSource\bin\someLib-1.dll ignored; no imports found from D:\some3RDSource\bin\someLib-1.dll

Прочитав про ошибку LNK2001: unresolved external symbol ___delayLoadHelper2 натолкнула на мысль: сама библиотека скомпилирована в VC9, текущий проект под VC12 - может в этом проблема? Как тогда это решить не имея возможности перекомпилировать саму библиотеку и без даунгрейда компилятора проекта(слишком много в самом проекте С++11,C++14 кода)?



Название: Re: /DELAYLOAD проблемы.
Отправлено: MaxoBik от Июнь 08, 2015, 23:11
Если кому пригодится на будущее - в общем проблема действительно оказалась в разных версиях компилятора, нашел эту же библиотеку в VC10, заменил и проблема пропала.