项目场景:
提示:这里简述项目相关背景:
在一台电脑上运行得很好的cmake工程,导入新电脑环境报错
问题描述
提示:这里描述项目中遇到的问题:
例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据
APP 中接收数据代码:
Running C:\Program Files\CMake\bin\cmake.exe C:/Qtcode/Ffmpeg/FFmpegPlay "-GCodeBlocks - NMake Makefiles JOM" in C:\Users\gh\AppData\Local\Temp\QtCreator-HkOhPP\qtc-cmake-fKKYhkur.
CMake Deprecation Warning:Support for "Extra Generators" likeCodeBlocksis deprecated and will be removed from a future version of CMake. IDEs mayuse the cmake-file-api(7) to view CMake-generated project build trees.-- Configuring done (0.1s)
CMake Error in CMakeLists.txt:No known features for CXX compiler"MSVC"version 19.16.27051.0.CMake Generate step failed. Build files cannot be regenerated correctly.
CMake process exited with exit code 1.
原因分析:
提示:这里填写问题的分析:
CMake Error in CMakeLists.txt:No known features for CXX compiler"MSVC"version 19.16.27051.0.
找不到编译器
找了一下cmake 文件
cmake_minimum_required(VERSION 3.25)set(project_name "Play")#project(test_cmake4 LANGUAGES CXX)
#project(${project_name} LANGUAGES CXX CUDA)
project(${project_name} LANGUAGES CXX)set(CMAKE_INCLUDE_CURRENT_DIR ON)set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)#set(WIN32_EXECUTABLE ON)set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)set(CMAKE_PREFIX_PATH "C:/Qt/Qt5.14.2/5.14.2/msvc2017_64")set(DEBUG_SUFFIX)
if (MSVC AND CMAKE_BUILD_TYPE MATCHES "Debug")set(DEBUG_SUFFIX "d")
endif ()set(FFMPEG_PREFIX_PATH "C:/ffmpeg6.0")
set(OpenCV_DIR "C:/opencv4.5.4/opencv/build/x64/vc15/lib")
project(${project_name} LANGUAGES CXX CUDA) 解释
当你使用 project(${project_name} LANGUAGES CXX)
这条CMake指令时,你正在定义一个CMake项目,并指定该项目将使用C++(CXX
)作为主要的编程语言。
这条指令告诉CMake:
- 项目的名称是
${project_name}
,其中${project_name}
是一个CMake变量,通常在使用该指令之前已被定义。 - 该项目将使用C++作为编程语言,这意味着CMake将自动配置适当的编译器和编译标志来编译C++源文件。
下面是一个简单的CMakeLists.txt文件的例子,其中使用了这条指令:
cmake_minimum_required(VERSION 3.10)# 定义项目名称
set(project_name MyProject)# 定义项目并指定C++作为编程语言
project(${project_name} LANGUAGES CXX)# 添加源文件并指定生成的可执行文件
add_executable(${project_name} main.cpp)
在这个例子中,我们首先指定了CMake的最低版本要求(cmake_minimum_required
),然后定义了一个变量 project_name
来存储项目的名称。接下来,我们使用 project
指令定义了项目,并指定了C++作为编程语言。最后,我们使用 add_executable
指令来指定一个C++源文件 main.cpp
,并指定生成的可执行文件的名称与项目名称相同。
需要注意的是,如果你打算在项目中使用CUDA,那么你需要将 LANGUAGES
参数修改为 LANGUAGES CXX CUDA
,并确保你的系统已经安装了CUDA工具包,并且CMake能够找到它。这样,CMake就能够配置适当的编译器和编译选项来编译C++和CUDA源文件了。
解决方案:
提示:这里填写该问题的具体解决方案:
更改完路径后一切正常,
重新运行cmake 问题解决
总结:
- 将#project(KaTeX parse error: Expected 'EOF', got '#' at position 41: …CXX CUDA) 修改为 #̲project({project_name} LANGUAGES CXX )
2.更改项目配置