CMake教程7:安装与编译

简介: CMake教程7:安装与编译

CMake下载

从官网下载安装后,需要将CMake安装到命令行,CMake直接有提示的,非常方便:

网络异常,图片无法展示
|
任选其中一种方式都可以
网络异常,图片无法展示
|
成功之后,验证一下:
网络异常,图片无法展示
|

cmake --help
Options
  -S <path-to-source>          = Explicitly specify a source directory. # 源文件目录
  -B <path-to-build>           = Explicitly specify a build directory.  # 构建输出目录
  -D <var>[:<type>]=<value>    = Create or update a cmake cache entry.  # 传递参数
  -G <generator-name>          = Specify a build system generator.      # 生成工程文件
复制代码

CMake编译链接项目

  • 在CMakeLists的同级目录执行cmake,就会生成build文件
cmake -S ./ -B ./build  
复制代码
  • 在上一步的build目录中执行make,即可编译链接生成程序。
make
复制代码

命令行给CMake传参

假如我们有如下的MakefileLists.txt,里面有如下的控制逻辑

if(CPP_TEST)
    # todo 
endif()
复制代码

我们希望通过命令行能够控制这部分逻辑,那么我们可以这样做

cmake -D CPP_TEST=false
复制代码

注意: 这里一定要是-D再加上变量名,cmake的help里面有说明

生成工程文件

cmake -G "Xcode" -B ./proj.mac
复制代码

CMake内部构建

在CMakeLists.txt的同级目录执行cmake

cmake ./
复制代码

CMake外部构建

在外部目录执行camke,构建结果会生成在外部目录,一般我们都使用的是这种方式

mkdir build
cd build
cmake ../
make
复制代码

手动编译cocos2d-x

排除test项目

cmake -S ./ -B ./build-result -D BUILD_CPP_TESTS=false -D BUILD_CPP_EMPTY_TEST=false -D BUILD_JS_TESTS=false -D BUILD_LUA_TESTS=false -D BUILD_JS_LIBS=false
复制代码

生成XCode工程

cmake -S ./ -G "Xcode"  -B ../qt-editor/cocos.mac  -D BUILD_CPP_TESTS=false -D BUILD_CPP_EMPTY_TEST=false -D BUILD_JS_TESTS=false -D BUILD_LUA_TESTS=false -D BUILD_JS_LIBS=false
复制代码


目录
相关文章
|
4月前
|
缓存 Unix 程序员
CMake 教程1
CMake 教程
74 1
|
4月前
CMake 教程2
CMake 教程
27 0
|
6月前
|
C++ 存储 测试技术
面向 C++ 的现代 CMake 教程(五)(3)
面向 C++ 的现代 CMake 教程(五)
66 0
|
6月前
|
C++ Unix Windows
面向 C++ 的现代 CMake 教程(四)(3)
面向 C++ 的现代 CMake 教程(四)
58 0
|
6月前
|
C++ 存储 JSON
面向 C++ 的现代 CMake 教程(五)(4)
面向 C++ 的现代 CMake 教程(五)
69 0
|
6月前
|
缓存 C++ Windows
面向 C++ 的现代 CMake 教程(一)(2)
面向 C++ 的现代 CMake 教程(一)
184 0
|
6月前
|
C++ 存储 测试技术
面向 C++ 的现代 CMake 教程(五)(2)
面向 C++ 的现代 CMake 教程(五)
79 0
|
6月前
|
C++ 开发者 缓存
面向 C++ 的现代 CMake 教程(四)(1)
面向 C++ 的现代 CMake 教程(四)
75 0
|
6月前
|
C++ 缓存 Unix
面向 C++ 的现代 CMake 教程(四)(4)
面向 C++ 的现代 CMake 教程(四)
56 0
|
6月前
|
缓存 存储 C++
面向 C++ 的现代 CMake 教程(一)(4)
面向 C++ 的现代 CMake 教程(一)
78 0