Как настроить проект, чтобы программа работала на Win Xp-7 без установки?
Есть консольное приложение на Visual Studio 2008. В нем подключается OpenCV и WinSock.
Нужно, чтобы программа запускалась на Windows от XP до 7 без установки доп программ и компонентов(тупо скинул папку на компьютер и запустил exe).
Пытался проект запустить на XP(собран был на Win7), после чего вылетела ошибка "Приложение не было запущено, поскольку оно некорректно настроено.". Тогда было найдено решение в настройках проекта выбрать Runtime Library - Multi threaded(/MT).Далее приложение начало требовать библиотеки и я благополучно скидывал их в папку приложения. Но далее я получил вот такую ошибку "Точка входа в процедуру ??1_NonReentrantPPLLockHolder@details@Concurrency@@QAEQXZ не найдена в библиотеке DLL MSVCR100.dll".
Как мне настроить проект правильно, чтобы таких проблем не возникало? И можно ли сделать exe монолитным(чтобы все dll были внутри)?
Могу ошибаться, но примерно с 2005 студии нельзя статически скомпоновать рантайм библиотеки. Т.е. как проект ни настраивай, но vcredist придётся устанавливать.
Ошибался :)
На вкладке General выбрать MFC Static', если это MFC приложение.
На вкладке Code Generation выбрать Multi threaded (MT).
При этом абсолютно все используемые библиотеки должы быть собраны аналогично и не требовать vcredist. Так же некоторые библиотеки может потребоваться вручную исключать из сборки.
При использовании OMP одну дополнительную библиотеку всегда придётся таскать в виде dll.
Так чт опроще сделать в виде shared библиотек, накидать их всех в папку с приложением, а потом упаковать это всё в один экзешник какой-нибудь программой типа Enigma Virtual box.