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"
    }
}
相关推荐
huanbailu1 小时前
Qt 跨线程信号槽:connect 返回 true 但槽函数不执行的坑
开发语言·c++·qt·信号槽·跨线程·元类型
HEJOO91 小时前
C++ 虚函数表(vtable)深度解析
开发语言·c++
xailorliu2 小时前
矩阵定性-正定负定不定半正定半负定
c++·opencv·线性代数·计算机视觉·矩阵
个 人 练 习 生3 小时前
C++-----string基本使用详解
开发语言·c++·学习
朝朝辞暮i3 小时前
C++ 第 5 课:else if + 多条件判断 + && / || / !
开发语言·c++
千谦阙听3 小时前
【C++篇】:string类——常用接口、底层原理与深浅拷贝
开发语言·c++·学习·visual studio
特立独行的猫A3 小时前
c++的`std::future` 与 `std::promise` 简明教程(5分钟读完)
c++
特立独行的猫A3 小时前
C++ 异步编程:std::future 与 std::promise 详解(含 RPC 客户端实现实践)
c++·后端
All for pursuit.4 小时前
【分治-2】215.数组中的第K个最大元素
数据结构·c++·算法·leetcode
lcj25114 小时前
【C++】set和map——详细使用说明
开发语言·c++·笔记·面试