Как я могу заставить программу, написанную на QT4, запускаться, когда я запускаю ее не из IDE? - PullRequest
0 голосов
/ 25 января 2009

Когда я запускаю программу из IDE (VS2008), она работает отлично. Когда я хочу запустить его из Windows Commander, он не работает, потому что ему нужна DLL, которая не была найдена. Использовал как отладочную, так и выпускную сборки.

Ответы [ 4 ]

1 голос
/ 25 января 2009

Убедитесь, что библиотеки Qt находятся в вашем PATH. Два простых решения:

  • Скопируйте DLL-файлы Qt в каталог EXE.
  • Скопируйте библиотеки DLL Qt в %WINDOWS%\System32 (например, C:\WINDOWS\System32) ( возможно небезопасно, особенно если вы устанавливаете другие версии Qt для всей системы . Также требуются права администратора).
0 голосов
/ 26 января 2009

Вы можете связать его статически со всеми необходимыми библиотеками. Сохраняет возиться с DLL и прочее. С другой стороны, вы не можете обновить DLL на своих установленных ПК, чтобы получить обновленную / улучшенную / исправленную функциональность, и вам придется пересобирать и заново развертывать.

То есть, действительно ли это целесообразно, зависит от ваших целей установки: несколько компьютеров, которыми вы управляете, или каждый человек + собака, который решит загрузить вашу программу?

Статическая компиляция в баге библиотеки (например, дыра в безопасности) и отправка ее вашим клиентам будет очень плохой формой. Выполнение того же в защищенной корпоративной интрасети может стоить того, чтобы вы знали, что каждая установка выполняется одинаково.

0 голосов
/ 25 января 2009

другое решение - поместить путь к подкаталогу qt bin в каталогах VS tools-> options-> projects и solutions-> VC ++.

0 голосов
/ 25 января 2009

Вы должны убедиться, что библиотеки DLL, необходимые для исполняемого файла (возможно, библиотеки QT), находятся в PATH или в том же каталоге, что и исполняемый файл. Вы можете узнать, какие библиотеки необходимы, используя зависимость.exe

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...