cmake模板和问题总结

一个简单的cmake模板

cpp 复制代码
#设置最低版本号
cmake_minimum_required(VERSION 4.2.0)

#设置项目名称
project(TestCmake VERSION 0.1.0 LANGUAGES C CXX)

#设置C++标准
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

#设置编译器选项
if(MSVC)
    add_compile_options(/W4)
else()
    add_compile_options(-Wall -Wextra -Wpedantic)
endif()

#设置编译输出目录
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_SOURCE_DIR}/bin/debug")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_SOURCE_DIR}/bin/release")

#设置目标名称
set(TARGET ${PROJECT_NAME}-${CMAKE_SYSTEM_NAME})


#创建可执行文件,链接源代码
add_executable(${TARGET} main.cpp)

#设置不同平台
if(WIN32)
    include_directories("")         #导入include路径
    link_directories("")            #链接库路径
elseif(APPLE)
    include_directories("")
    link_directories("")
elseif(UNIX)
    include_directories("")
    link_directories("")
endif()

#指定连接库
target_link_directories(${TARGET} 库名字 库名字)

#查找OpenCV ,REQUIRED表示必须找到
find_package(OpenCV REQUIRED)
target_link_directories(${TARGET} OpenCV::库名字)

vscode 设置cmke让编译通过

MSBuild 在访问 %USERPROFILE%\AppData\Local\Temp 时出现了编码错误,是由于中文路径中导致的问题。

解决方案:

.vscode/settings.json(项目级 VS Code 配置)新建一个配置文件。

cpp 复制代码
{
    "cmake.environment": {
        "TMP": "${workspaceFolder}/.tmp",
        "TEMP": "${workspaceFolder}/.tmp"
    }
}
相关推荐
劉宇雁2 小时前
C++ ASCII 3D无尽跑酷游戏
c++·游戏·3d
杜子不疼.3 小时前
【C++ 在线五子棋对战】- 会话管理模块实现
开发语言·c++
有点。3 小时前
C++深度优先搜索(DFS)的概念(一)
开发语言·c++·深度优先
旖-旎3 小时前
《LeetCode 978 最长湍流子数组 || LeetCode 139 单词拆分》
c++·算法·leetcode·动态规划
aaPIXa6223 小时前
C++大型项目模块化拆分实战记录
开发语言·c++
石山代码3 小时前
C++23 新特性在 CLion 中的实战体验
开发语言·c++·c++23
在线OJ的阿川3 小时前
仿muduo库实现高并发服务器
linux·服务器·c++
坚定学代码4 小时前
C++ SOLID 原则(上):单一职责、开闭原则与里氏替换
c++
ysa0510304 小时前
【板子】欧拉序
c++·笔记·算法·深度优先·图论