Оказывается, статическая связь работает, но только для библиотек Qt. Моя сторонняя библиотека QtSerialPort не связывает статически. После некоторого повторного поиска, я обнаружил, что мне либо нужно собрать эту библиотеку статически, либо мне нужно напрямую связать файл .pri в моем .pro-файле.Qt Сторонняя библиотека Статическая связь (QtSerialPort)
Я не уверен, как это сделать, так как кажется, что QtSialialPort не был предназначен для статического соединения.
.При метод, который я действительно не понимаю, и было неясно описано в этих двух звеньях: http://qt-project.org/forums/viewthread/15223 http://www.qtcentre.org/archive/index.php/t-54505.html
Кто-нибудь есть какие-либо adivce о том, как получить любой из этих методов, чтобы работать? Или, возможно, другой метод?
Кроме того, MSVCP100.dll не связывает статически, если кто-нибудь может дать мне какие-либо советы по этому поводу.
================================================================================================================================== ====================================
Я пытаюсь получить Qt для статической ссылки библиотек так что я могу сделать отдельное приложение. Я следил за различными учебниками о том, как ставить Qt статически, а затем создавать статическое приложение, но мне не очень повезло. Я считаю, что я успешно построил Qt со статической связью, потому что приложение выросло в размере от 79 КБ до 7 + МБ, но я все еще получаю ошибки, связанные с отсутствием QtCore4.dll и QtSerialPort.dll. Кроме того, еще одна проблема, которую я испытываю при использовании этой статической конфигурации, которая не слишком серьезная, заключается в том, что когда я закрываю свою программу, Windows думает, что она разбилась и дает мне окно, в котором говорится, что MyProgram.exe перестала работать ...
Я на компьютере с Windows, используя MSVC 2010 с Qt 4.8.5, и использую стороннюю библиотеку QtSerialPort.
Что я сделал для Согласно наблюдениям гидов я читал это:
Загрузка и извлечение qt-everywhere-opensource-src-4.8.5.zip Открыть/mkspec/mwin32-msvc2010/QMAKE .conf и изменить follwing строки
CONFIG += qt warn_on release incremental flat link_prl precompile_header autogen_precompile_source copy_dir_files debug_and_release debug_and_release_target
и
QMAKE_CLFAGS_RELEASE = -O2 -MT
я открыть MSVC2010 командную строку и перейдите к этому. Затем я ввожу команды
configure -static -release -platform win32-msvc2010
nmake sub-src
После этого делается я открываю свой проект и добавить
CONFIG += static
в файл .pro. В QtCreator я затем перехожу к Project, Manage Kits, а затем в Qt Versions и просматриваю qMake, который я только что сгенерировал. Я добавляю новый комплект с этой версией qMake. Затем я очищаю все и переключаюсь на этот новый комплект и запускаю qmake из QtCreator. Затем я использую msvc2010 командную строку, чтобы перейти к каталогу, в котором файлы создаются, а затем
nmake release
Это создает довольно большой EXE-файл, но как я уже сказал, это все-таки в зависимости от пары .dll-х годов.
Запуск http://dependencywalker.com/ на вашем exe может объяснить, почему у вас есть зависимость dll. –
Upvoted. Внедрение QT может стать проблемой. –
Я не уверен, в чем проблема. Вы можете построить QtSerialPort статически, как любой проект на основе make. в чем именно проблема?: – lpapp