栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

cmake学习(二)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

cmake学习(二)

cmake学习(二)

编译多文件
一般写代码的时候都会使用包含头文件和cpp文件的方式

# 将指定的目录添加到编译器用于搜索头文件的目录。相对路径被解释为相对于当前源目录。
# 命令原型: include_directories([AFTER|BEFORE] [SYSTEM] dir1 [dir2 ...])
include_directories(include) # 添加头文件目录
# 获取 src/ 目录下所有的cpp 文件 作为 SOURCE(自定义的名字),这样可以省去在生成可执行文件的时候写好多cpp 
file(GLOB SOURCE "src/*.cpp") # 源文件
#该命令会查找指定目录下的所有源文件,然后将结果存进指定变量名
# aux_source_directory( )
aux_source_directory(/home/tjk/CLionProjects/cmake_demo/demo2/src SRC_ALL)
#为了避免在生成可执行文件的时候写好多cpp,也可以使用set 命令设置变量
set(SOURCE "src/say_hello.cpp" "main.cpp")   # 将 cpp 文件 统一赋给 SOURCE
 
Demo 2: 

可以在 build 文件夹下执行cmake .. 这样生成的文件都会在build 文件夹下,避免污染文件夹。

// main.cpp
#include "say_hello.h"

int main()
{
    say_hello();
    return 0;
}
//===========================================
//say_hello.h
#ifndef CMAKE_DEMO_SAY_HELLO_H
#define CMAKE_DEMO_SAY_HELLO_H
void say_hello();
#endif //CMAKE_DEMO_SAY_HELLO_H
//===========================================
//say_hello.cpp
#include "say_hello.h"
#include 
using namespace std;
void say_hello()
{
    cout<<"hello cmake"< 

写法 1

# CMakeLists.txt  
# :
cmake_minimum_required(VERSION 3.16)
project(demo2)
include_directories(/home/tjk/CLionProjects/cmake_demo/demo2/include) # 包含头文件的路径
add_executable(demo2 main.cpp src/say_hello.cpp)  #生成可执行文件

写法 2

#cmake_minimum_required(VERSION 3.16)
#project(demo2)
#include_directories(/home/tjk/CLionProjects/cmake_demo/demo2/include)
#file(GLOB src_all src/*.cpp)
#add_executable(demo_2 main.cpp ${src_all})

写法 3

cmake_minimum_required(VERSION 3.16)
project(demo2)

include_directories(/home/tjk/CLionProjects/cmake_demo/demo2/include)
set(SOURCE "src/say_hello.cpp" "main.cpp")   # 将 cpp 文件 统一赋给 SOURCE
add_executable(demo2 ${SOURCE})

写法 4

cmake_minimum_required(VERSION 3.16)
project(demo2)
set(CMAKE_CXX_STANDARD 11)

include_directories(/home/tjk/CLionProjects/cmake_demo/demo2/include)
aux_source_directory(/home/tjk/CLionProjects/cmake_demo/demo2/src SRC_ALL)
add_executable(demo_2 main.cpp ${SRC_ALL})
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/648551.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号