Неверная линковка проекта в Qt + msvc2010

400
10 ноября 2017, 09:47

Поддерживаю один проект, он используется в виде сервиса windows, реализован при помощи Qt ( класс QtService и пр. ) Перекидываю из папки bin установленного в Qt QtCore4.dll в папку прописанную в переменной среды PATH (установщик делает это автоматически) Во время запуска сервиса программа вылетает с ошибкой:

Точка входа в процедуру _Z4endlR11QTextStream не найдена в библиотеке DLL Qt4Core.dll

Сборка - Release

Комплект Qt - на основе msvc2010 windows7 x86 64-bit.

Есть ли какой-то метод настроить линковщик? Ведь он указывает в какой dll программе искать функции. Понимаю, что можно попробовать пересобрать Qt, но не факт что это верное решение.

Кстати, при запуске через qtcreator\отладке со средой сборки проекта программа вылетает уже с ошибкой запуска сервиса, что намкает на то, что программа таки смогла подгрузить нужную функцию.

grep-нул по имени-представлению в runtime функции по dll файлам в bin, ни один файл не совпал.

Answer 1

Если порыться в каталоге с Qt, то можно найти библиотеки, которые в папке bin - это для QtCreator, а можно ещё найти библиотеки для других компиляторов/версий (mingw к примеру). Вам нужно скопировать эту библиотеку (и сопутствующие) с правильной версии kit. У Вас это будет скорее всего папка C:\Qt\4???\msvc2010_64\bin.

Но вот только перекладывать в папку, прописанную в PATH я бы тоже не стал. Таких "рекомендаций" много и все так прописывают. Если кто то с своим путем успел раньше - будет проблема, аналогична Вашей. Самое простое - положить себе под ноги (в ту же папку, где exe).

Но честно, 4 Qt - это такое устаревшее...

READ ALSO
Геометрия.Площади [требует правки]

Геометрия.Площади [требует правки]

Ребят,прошу ответить на вопрос: формула площади (допустим треугольника ) через длины векторовФормулу Герона в мусорку, это для слабаков

353
Что означает эта запись? [требует правки]

Что означает эта запись? [требует правки]

Каким образом работает эта функция сравнения? Что значит (int*)?

241
unresolved external symbol __RTC *

unresolved external symbol __RTC *

Опишите возможные причины проблемы линковки:

277
С++ аварийный выход из конструктора

С++ аварийный выход из конструктора

Можно ли во время создания объекта, при сбое в конструкторе завершить его без создания объекта и оповестить об этом программу?

252