Я хочу использовать статическую сборку Qt 5.4. Поскольку нет предустановленной статической сборки, вы должны сами создать ее из исходного кода Qt.Qt 5.4 static build создает ошибку неразрешенного внешнего символа в Visual Studio 2013
Моя среда является следующее:
- Windows 7 x64
- Visual Studio 2013 Окончательный Update 4
- Qt5 Visual Studio надстройки 1.2.4
- ActivePerl/ActivePython установлен (требуется build Qt source)
Моя процедура была следующей (см. Qt Documentation> Qt 5.4> Qt для Windows - Bui lding от источника):
- СКАЧАТЬ qt-everywhere-opensource-src-5.4.0.zip
- Извлечь в папку Темп
- Откройте командную строку, как описано here (в основном, это похоже на открыть "Visual Studio Command Prompt" и добавив несколько путей к переменной пути)
Выполнить настройки с помощью следующей команды
configure -c++11 -mp -release -static -nomake tests -nomake examples -prefix D:\Qt\qt-5.4.0-x86-msvc2013-compact-static -platform win32-msvc2013 -opengl desktop -no-icu -skip webkit
Run
nmake
иnmake install
Все это пробегают без ошибок.
Затем в Visual Studio я изменил Qt-версию существующего проекта Qt на D:\Qt\qt-5.4.0-x86-msvc2013-compact-static
, так как это была выходная папка описанной выше процедуры.
Однако, теперь я получаю тонны неразрешенных ошибок символа в следующем виде (построить конфигурацию «освобождение»):
error LNK2001: unresolved external symbol "[email protected]". Qt5Gui.lib(qopenglfunctions.obj)
...
error LNK2001: unresolved external symbol "_hb_blob_create". Qt5Gui.lib(qharfbuzzng.obj)
...
error LNK2001: unresolved external symbol "_hb_face_create_for_tables". Qt5Gui.lib(qharfbuzzng.obj)
....
error LNK2001: unresolved external symbol "[email protected]". Qt5Core.lib(qeventdispatcher_win.obj)
Разделяемая библиотека/динамическое связывание строить с аналогичными опциями (-platform win32-msvc2013 -opengl desktop -no-icu -skip webkit
) работает просто отлично.
Что я делаю неправильно?
Update 6 января:
1) Как уже упоминалось в комментариях, это может быть ошибка в Qt, поэтому я создал отчет об ошибке (QTBUG-43636), а затем Я нашел, вероятно, связанную ошибку (QTBUG-38913).(К сожалению, я могу отправить не более 2 ссылки)
2) Я узнал (спасибо karlphillip), что вы можете уменьшить количество сообщений об ошибках, если добавить некоторые библиотеки для ваших дополнительных зависимостей в Visual Studio
Ws2_32.lib
решает одно сообщение об ошибке (из 103)opengl32.lib
решает 47 сообщений об ошибках
Это означает, что теперь "только" 55 error messages left. Может быть, еще не хватает библиотек?
1) Пахнет как ошибка в Qt. Вы считали [сообщение об этом] (http://bugreports.qt-project.org/)? 2) Не являюсь пользователем Windows prouser: вы уверены, что теперь он на 100% поддерживается для предоставления префиксного пути/для запуска make install? – peppe
[Вы видели это?] (Http://qt-project.org/forums/viewthread/10990/#61132) – karlphillip
На веб-сайте написано, что вы можете использовать префикс и nmake install http: //doc.qt. io/qt-5/windows-building.html Добавление imm32.lib winmm.lib Ws2_32.lib не решает проблему. – manuel