该技术栈的部署过程分三步:
构建---编译---运行
构建:
bash
cmake -S . -B build -G "Visual Studio 16 2019" -A x64 -DCMAKE_PREFIX_PATH="D:\Qt5_15\5.15.2\msvc2019_64\lib\cmake"
编译:
bash
cmake --build build --config Debug
bash
cmake --build build --config Release
运行:
bash
.\build\Debug\QtSnake.exe
或者在文件夹中找的exe文件进行运行。
其中遇到的问题:
bash
Automatic MOC for target QtSnake
AutoMoc error
-------------
"SRC:/model.cpp"
contains a "Q_OBJECT" macro, but does not include "model.moc"!
Consider to
- add #include "model.moc"
- enable SKIP_AUTOMOC for this file
D:\Microsoft Viusal 2019\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(145,5): error MSB3073: 命令"setl
ocal [D:\code\QT\Qt_demo\build\QtSnake.vcxproj]
D:\Microsoft Viusal 2019\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(145,5): error MSB3073: cd D:\c
ode\QT\Qt_demo\build [D:\code\QT\Qt_demo\build\QtSnake.vcxproj]
D:\Microsoft Viusal 2019\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(145,5): error MSB3073: if %err
orlevel% neq 0 goto :cmEnd [D:\code\QT\Qt_demo\build\QtSnake.vcxproj]
D:\Microsoft Viusal 2019\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(145,5): error MSB3073: D: [D:\
code\QT\Qt_demo\build\QtSnake.vcxproj]
D:\Microsoft Viusal 2019\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(145,5): error MSB3073: if %err
orlevel% neq 0 goto :cmEnd [D:\code\QT\Qt_demo\build\QtSnake.vcxproj]
D:\Microsoft Viusal 2019\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(145,5): error MSB3073: D:\CMak
e\bin\cmake.exe -E cmake_autogen D:/code/QT/Qt_demo/build/CMakeFiles/QtSnake_autogen.dir/AutogenInfo.json Rel
ease [D:\code\QT\Qt_demo\build\QtSnake.vcxproj]
D:\Microsoft Viusal 2019\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(145,5): error MSB3073: if %err
orlevel% neq 0 goto :cmEnd [D:\code\QT\Qt_demo\build\QtSnake.vcxproj]
D:\Microsoft Viusal 2019\MSBuild\Microsoft\
我在CMakeLists.txt 中配置了set(CMAKE_AUTOMOC ON) ,按道理mod工具会自动去链接mod文件,但是却没有构建成功。
解决:原因是我将.cpp .h .main写在了一起,当我分开之后就没有这个问题