Работаю в qt creator, все запускается. При попытке запустить exe вне creator ничего не происходит. Все dll есть, использую msvc2017, qt5.12.6 Заранее спасибо
Обычно, когда запускается приложение из QtCreator, то используется окружение среды, отличное от вашей рабочей среды. Т.е. здесь могут быть указаны дополнительные пути к библиотекам Qt. Например у меня в QtCreator в свойствах сборки дополнительно прописана переменная QTDIR = "C:\Qt\5.13.1\mingw73_32" (у вас должно быть что-то похожее с msvc2017).
Решение может быть следующим:
Добавить данную переменную в переменные среды.
Добавить путь "C:\Qt\5.13.1\mingw73_32\bin" к переменной среды Path (обратите внимание, что добавил подкатолог bin).
Сам использую последний метод.
Комментарии по поводу использования того или другого метода.
Вообще запуск приложения вне среды разработки подразумевает, что Вы уже добрались до распространения приложения, иначе почему бы и не запускать его далее из среды разработки. А раз так, то Вам нужно правильно подготовить приложение для переноса на другой компьютер (фактически Вы делаете приложение независимым от того стоит на компьютере Qt или нет). Первые 2 метода не годятся, поскольку так или иначе подразумевают, что на Вашем компьютере должен быть установлен Qt, а это достаточно большой объем для быстрой установки на произвольном компьютере.
Третий метод (создание статического приложения) подразумевает достаточно большой объем подготовительной работы: Вы должны пересобрать все библиотеки Qt в статике. В результате будет собираться приложение с большим размером. Проблема еще и заключается в том, что если у Вас набор утилит, то все утилиты будут примерно одинакового размера и размер программного пакета будет расти примерно линейно от количества утилит в пакете. (При динамической сборке такого не происходит, поскольку основной размер приложения остается в динамических библиотеках и они равноправно используются всеми утилитами).
Наконец,последний метод (windeployqt). Данная утилита собирает все необходимые библиотеки в один каталог и уже из этого каталога Вы можете запускать свое приложение. Читайте описание данной утилиты. Я же ее использую прямо при сборке проекта: использую QBS и вызов вот такой функции:
function WinDeployQt(input, resultPath){
var winDeploy = new Process();
var winDeployPath = Environment.getEnv("QTDIR")+"/bin/windeployqt";
var qmlDir = Environment.getEnv("QTDIR")+"/qml";
winDeployPath = winDeployPath.replace(/\\/g,"/");
writeLog("WinDeployQt: "+ input.filePath);
writeLog("resultPath: "+ resultPath);
ExCode = winDeploy.exec(winDeployPath,
["--release",
"--no-translations",
"--no-system-d3d-compiler",
"--compiler-runtime",
"--no-opengl-sw",
"--qmldir", qmlDir,
"--dir", resultPath,
input.filePath]);
if (ExCode){
writeLog("Error: "+winDeploy.readStdErr());
}
File.copy(input.filePath, resultPath+"/"+input.fileName);
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Помогите пожалуйста с алгоритмом обхода дерева в ширину на с++ Вот код:
Смысл цикла: вводятся с клавиатуры s1 и s2Если mapT[s2] существует, то заносится в multiset значение
гуру MySQL, подскажите, как правильно работать с типом данных varbinary(20)? Нужно взять исходное значение, изменить определенный бит и засетать обратноНе...