美文网首页
cmake学习

cmake学习

作者: __weiliang | 来源:发表于2022-03-05 21:23 被阅读0次
1.设置环境变量
//设置cmake最低版本是3.2
cmake_minimum_required(VERSION 3.2)

//设置c++版本
set(CMAKE_CXX_STANDARD 14)
set(CXX_STANDARD_REQUIRED)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")

//set 还有指定变量的意思
//PROJECT_SOURCE_DIR 是包含PROJECT()的最近一个CMakeLists.txt文件所在的文件夹
set(LIB_DIR ${PROJECT_SOURCE_DIR}/lib)
2.设置项目的名称 Demo
//CXX:使用语言
project(Demo CXX) 
3.将源文件编译成一个可执行文件。
/*
demo: 输出
main.cc :源文件
*/
add_executable(Demo main.cc) 
4.保存当前目录下的源文件到变量中
// 查找当前目录下的所有源文件
// 并将名称保存到 DIR_SRCS 变量
 aux_source_directory(. DIR_SRCS)

//如果不需要加载所有源文件
set(DIR_SRCS  main.cc a.cc)
5.添加子目录
// 添加 math 子目录
 add_subdirectory(math)
5.添加链接库
//添加MathFunctions到mdeo,MathFunctions 可以是子文件里生成的
 target_link_libraries(Demo MathFunctions)
6.生成链接库
//add_library 将 src 目录中的源文件编译为静态链接库。
//STATIC静态库 SHARED动态库
 add_library (MathFunctions STATIC 
 ${DIR_LIB_SRCS})
7.找到电脑openssl文件目录
brew --prefix openssl
8.下载静态库demo到bin目录
install(TARGETS demo DESTINATION bin)
9.添加宏
//定义TEST_DEF,初始值为ON
OPTION(TEST_DEF "test definition " ON)
if(TEST_DEF)
  add_definitions(-DUSE_TEST=1)
endif()
10.内置变量
//如果是iOS
if (NOT IOS)

//如果是apple
if (APPLE)

/*这三个变量指代的内容是一致的,如果是 in source 编译,指的就是工程顶层目录,
如果是 out-of-source 编译,指的是工程编译发生的目录
*/
CMAKE_BINARY_DIR
PROJECT_BINARY_DIR
<projectname>_BINARY_DIR

/*这三个变量指代的内容是一致的,不论采用何种编译方式,都是工程顶层目录。
也就是在 in source 编译时,他跟 CMAKE_BINARY_DIR 等变量一致
*/
CMAKE_SOURCE_DIR
PROJECT_SOURCE_DIR
<projectname>_SOURCE_DI

其余的见原文

参考

相关文章

  • cmake学习笔记6-catkin的CmakeList.txt讲

    引用cmake学习笔记-cmakelist.txt创建项目示例cmake的介绍和使用 Cmake实践推荐cmake...

  • CMake学习

    CMake学习 本篇分享一下有关CMake的一些学习心得以及相关使用。 本文目录如下: [1、CMake介绍] [...

  • 教程

    通过例子学习CMake[https://sfumecjf.github.io/cmake-examples-Chi...

  • CMake学习

    CMake学习 参考自《Cmake Practice --Cjacker》 基本语法规则 变量的引用 变量使用${...

  • 学习CMake(一)

    开篇立意,这个系列是为了让我能够更快更好的学习CMake这个工具,学习的资料源于cmake-bulidsystem...

  • CMake学习小结--变量

    CMake学习小结 参考资料 CGold的Cmake教程 -- 这个教程很新: https://cgold.rea...

  • 学习cmake

    make cmake是为了支持make的跨平台而出现的。因此,我们首先学习make,可以看这里。 cmake ma...

  • CMake学习

    目录 什么是CMake? linux平台安装CMake CMake的helloworld 1. 什么是CMake?...

  • 学习 cmake

    打包工具 cmake brazel qmake 在 c++圈是比较流行的几款最近学习主流的cmake首先在使用c...

  • CMake学习

    前言:最近在学习NDK时,一些学习资料的项目都是在eclipse上写的,这些项目都是基于NDK构建的,但是现在的A...

网友评论

      本文标题:cmake学习

      本文链接:https://www.haomeiwen.com/subject/gpwxrrtx.html