Проблемы запуска приложения с использованием пользовательской библиотеки с QT 6.9.1C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Проблемы запуска приложения с использованием пользовательской библиотеки с QT 6.9.1

Сообщение Anonymous »

В настоящее время я разрабатываю проект в Windows 11, используя QT 6.9.1 (MSVC 2022) и CMAKE.
Настройка состоит из двух частей: < /p>

MyLib: библиотека, которая определяет некоторые пользовательские виджеты, которые также используют компоненты qtwebengine (например, qwebengineView, QWENLEN, QWENLENLEN,). /> myexec: приложение GUI (для Windows), которое использует как библиотеки QT, так и пользовательские виджеты из MyLib.
Я успешно строю и устанавливаю MyLib с использованием CMAKE, и я получаю файлы .LIB и .DLL без каких -либо проблем. /> Единственная конфигурация, которая запускается (без немедленных ошибок запуска), - это когда MyLib встроен в выпуск и связан с MyExec также в выпуске. Но в этом случае приложение вылетает, как только я открываю панель, которая использует один из пользовательских виджетов из MyLib.

Код: Выделить всё

[build]   Checking C:/Qt/6.9.1/msvc2022_64/resources/icudtl.dat, C:/path/to/git/MyExec/build/Debug/resources/icudtl.dat
[build]   icudtl.dat is up to date.
[build]   Checking C:/Qt/6.9.1/msvc2022_64/resources/qtwebengine_devtools_resources.debug.pak, C:/path/to/git/MyExec/build/Debug/resources/qtwebengine_devtools_resources.debug.pak
[build]   C:\Qt\6.9.1\msvc2022_64\resources\qtwebengine_devtools_resources.debug.pak does not exist.
[build] C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(166,5): error MSB3073: The command "setlocal [C:\path\to\git\MyExec\build\MyExec.vcxproj]
[build] C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(166,5): error MSB3073: "C:\Program Files\CMake\bin\cmake.exe" -E echo "Copying MyLib" [C:\path\to\git\MyExec\build\MyExec.vcxproj]
[build] C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(166,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd [C:\path\to\git\MyExec\build\MyExec.vcxproj]
[build] C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(166,5): error MSB3073: "C:\Program Files\CMake\bin\cmake.exe" -E copy_if_different C:\path\to\git\MyLib/install/bin/MyLibd.dll C:/path/to/git/MyExec/build/Debug [C:\path\to\git\MyExec\build\MyExec.vcxproj]
[build] C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(166,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd [C:\path\to\git\MyExec\build\MyExec.vcxproj]
[build] C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(166,5): error MSB3073: "C:\Program Files\CMake\bin\cmake.exe" -E echo "MyLib copied successfully" [C:\path\to\git\MyExec\build\MyExec.vcxproj]
[build] C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(166,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd [C:\path\to\git\MyExec\build\MyExec.vcxproj]
[build] C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(166,5): error MSB3073: :cmEnd [C:\path\to\git\MyExec\build\MyExec.vcxproj]
[build] C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(166,5): error MSB3073: endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone [C:\path\to\git\MyExec\build\MyExec.vcxproj]
[build] C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(166,5): error MSB3073: :cmErrorLevel [C:\path\to\git\MyExec\build\MyExec.vcxproj]
[build] C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(166,5): error MSB3073: exit /b %1 [C:\path\to\git\MyExec\build\MyExec.vcxproj]
[build] C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(166,5): error MSB3073: :cmDone [C:\path\to\git\MyExec\build\MyExec.vcxproj]
[build] C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(166,5): error MSB3073: if %errorlevel% neq 0 goto :VCEnd [C:\path\to\git\MyExec\build\MyExec.vcxproj]
[build] C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(166,5): error MSB3073: setlocal [C:\path\to\git\MyExec\build\MyExec.vcxproj]
[build] C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(166,5): error MSB3073: "C:\Program Files\CMake\bin\cmake.exe" -E echo "Running windeployqt to deploy Qt dependencies" [C:\path\to\git\MyExec\build\MyExec.vcxproj]
[build] C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(166,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd [C:\path\to\git\MyExec\build\MyExec.vcxproj]
[build] C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(166,5): error MSB3073: "C:\Program Files\CMake\bin\cmake.exe"  -E env QT_PLUGIN_PATH=C:\Qt\6.9.1\msvc2022_64/plugins C:\Qt\6.9.1\msvc2022_64/bin/windeployqt.exe --no-translations --verbose 2 --debug C:/path/to/git/MyExec/build/Debug [C:\path\to\git\MyExec\build\MyExec.vcxproj]
[build] C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(166,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd [C:\path\to\git\MyExec\build\MyExec.vcxproj]
[build] C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(166,5): error MSB3073: "C:\Program Files\CMake\bin\cmake.exe" -E echo "windeployqt completed successfully" [C:\path\to\git\MyExec\build\MyExec.vcxproj]
[build] C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(166,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd [C:\path\to\git\MyExec\build\MyExec.vcxproj]
[build] C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(166,5): error MSB3073: :cmEnd [C:\path\to\git\MyExec\build\MyExec.vcxproj]
[build] C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(166,5): error MSB3073: endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone [C:\path\to\git\MyExec\build\MyExec.vcxproj]
[build] C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(166,5): error MSB3073: :cmErrorLevel [C:\path\to\git\MyExec\build\MyExec.vcxproj]
[build] C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(166,5): error MSB3073: exit /b %1 [C:\path\to\git\MyExec\build\MyExec.vcxproj]
[build] C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(166,5): error MSB3073: :cmDone [C:\path\to\git\MyExec\build\MyExec.vcxproj]
[build] C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(166,5): error MSB3073: if %errorlevel% neq 0 goto :VCEnd [C:\path\to\git\MyExec\build\MyExec.vcxproj]
[build] C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(166,5): error MSB3073: :VCEnd" exited with code 1. [C:\path\to\git\MyExec\build\MyExec.vcxproj]
[proc] The command: "C:\Program Files\CMake\bin\cmake.EXE" --build c:/path/to/git/MyExec/build --config Debug --target MyExec -j 28 -- exited with code: 1
[driver] Build completed: 00:00:14.862
[build] Build finished with exit code 1
< /code>
Я использую Cmake через расширение кода VS, команда, которую она автоматически запускает: < /p>
[main] Building folder: c:/path/to/git/MyExec/build
[build] Starting build
[proc] Executing command: "C:\Program Files\CMake\bin\cmake.EXE" --build c:/path/to/git/MyExec/build --config Debug --target MyExec -j 28 --
[build] MSBuild version 17.13.9+e0f243f1e for .NET Framework
< /code>
В cmakelists.txt есть эти строки кода: < /p>
if (WIN32)

add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E echo "Copying MyLib"
COMMAND ${CMAKE_COMMAND} -E copy_if_different $$ $
COMMAND ${CMAKE_COMMAND} -E echo "MyLib copied successfully"
)

add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E echo "Running windeployqt to deploy Qt dependencies"
COMMAND ${CMAKE_COMMAND} -E env QT_PLUGIN_PATH=$ENV{QT6DIR}/plugins $ENV{QT6DIR}/bin/windeployqt.exe --no-translations --verbose 2 $$ $
COMMAND ${CMAKE_COMMAND} -E echo "windeployqt completed successfully"
)
endif()
Ошибка, по -видимому, связана с отсутствующим файлом qtwebengine_devtools_resources.debug.pak, но я не смог найти какую -либо ссылку на него, даже используя инструмент обслуживания QT.
>

Подробнее здесь: https://stackoverflow.com/questions/797 ... h-qt-6-9-1
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»