2013-03-01 2 views
4

Я написал простой диалог с использованием библиотеки Qt на Widows 7. Теперь мне нужно отправить этот файл .exe моему другу, чтобы он мог это использовать. Но мне нужно отправить около 10 .dll файлов, чтобы он мог его использовать. Я нашел их всех и послал, но он не может открыть его. Существует некоторая «Visual C++ Runtime Error». Откровенно говоря, на моем другом компьютере я не могу открыть его с той же ошибкой. Я гугл много, и нашел другой ответ, такие как:Qt построить в один файл exe без dlls

  1. Обновления DirectX
  2. УСТАНАВЛИВАЕТ Microsoft Visual C++ 2010 Redistributable Package (vcredist_x86.exe)

Но все это не помогает меня. Итак, мои вопросы:

  1. Почему это работает на моем компьютере, где я разработал этот диалог, то есть в чем проблема?
  2. Как я могу избавиться от всего этого? .dll вещи можно легко скомпилировать в один файл .exe?
+1

Вы зашли на эту статью: http://qt-project.org/wiki/Build_Standalone_Qt_Application_for_Windows? –

+0

Или Развертывание в Windows: http://qt-project.org/doc/qt-4.8/deployment-windows.html – Pete

+0

Возможно также сделать установщик. Мне нравится innosetup для этого: http://www.jrsoftware.org/isinfo.php – Pete

ответ

5

1.Что это работает на моем компьютере, где я разработал этот диалог, то есть в чем проблема?

Поскольку на вашем компьютере установлена ​​VC Runtime.

Есть два пути решения этой проблемы,

a.you нужно собрать QT и ваш ех многопоточного (MT) вместо MultiThreadDLL (МПД).

b.install vc runtime на компьютере вашего друга.

2. Как я могу избавиться от всего этого .dll, чтобы скомпилировать его в один .exe-файл?

Вам нужно собрать все библиотеки QT в libs (whit MT) и связать exe с этими libs.

Это занимает много времени. И вам все равно нужны DLL окна. Во всяком случае, если вы все еще хотите, чтобы статически Qt эти ссылки могут быть очень полезны:

  1. http://qt-project.org/wiki/How_to_build_a_static_Qt_version_for_Windows_with_gcc
  2. http://qt-project.org/doc/qt-4.8/deployment-windows.html
+0

Но я попытался установить VC Runtime (vcredist_x86.exe, я думаю) на другом компьютере, это не поможет. Зачем? – Narek

+0

Убедитесь, что вы установили правильную продолжительность выполнения для своего компилятора. Существует другая среда исполнения для x64 и 32bit, а также каждая версия компилятора, и даже пакет обновления имеет другое время выполнения. Кроме того, убедитесь, что вы построили Qt с тем же самым компилятором, что и вы создали свое приложение. – drescherjm

+0

Если все это выполнено, я запустил файл depend.exe, чтобы попытаться определить, чего не хватает. – drescherjm

1

Эта ссылка поможет мне найти решение. https://bugreports.qt-project.org/browse/QTBUG-28766

Я скопировать все DLL в "C: \ Qt \ Qt5.0.1 \ 5.0.1 \ mingw47_32 \ Bin" каталог, но все решается после того, как добавить "платформы/qminimal.dll" и «платформы/qwindows .dll "в мою .exe-программу.

Смежные вопросы