У меня есть приложение, которое использует wxWidgets
в качестве инфраструктуры пользовательского интерфейса и скомпилировано с использованием Visual Studio 2010 на компьютере с Windows 7. Я связываю wxWidgets
статически. Мое приложение также использует C dll для обработки.
Теперь я пытаюсь запустить это приложение на другом недавно установленном компьютере (Win7). Это не имеет настройки среды разработчика. Я скопировал на этот компьютер исполняемый файл приложения, поддерживающий dll и другие вспомогательные текстовые файлы.
При запуске приложения выдается следующее сообщение.
The program failed to start because MSVCR100d.DLL is missing from your computer. Try reinstalling the program to fix this problem
.
Я подумал, что моя библиотека C использовала отладочную версию, и компилирование в режиме Release
решило проблему. Но он все еще просит MSVCR100.dll
. Я думаю, что обходной путь - установка распространяемого пакета VC ++. Но не уверен, что это лучший подход.
Вот мои вопросы.
- Как вы обычно развертываете приложение? Вы также предоставляете распространяемый пакет VC ++?
- Я собираю это на 64-битной машине и тестирую на 32-битной. Это нормально? Или мне нужно компилировать отдельно для 32 бит?
- Можно ли статически связать библиотеку времени выполнения? Так что я могу просто отправить мои DLL и другие файлы.
- Какие еще общие вещи я должен знать при создании исполняемого файла, который будет работать на многих машинах?
Ниже приведены некоторые из моих настроек, которые могут иметь значение.
General :
Use of MFC : Use standard windows libraries
Use of ATL : Not using
C/C++ :
Runtime library : Multi-threaded(/MT)
Буду признателен за любую помощь.