CMake

88 阅读1分钟

入门

截屏2022-06-29 下午1.35.12.png

Q CMake

  • addlib

    1. library.h library,cpp
    2. CMakeLists.txt
  • 编译

    1. cd build/
    2. cmake ..

截屏2022-06-29 下午1.28.31.png

Q CMake Tools

Q 架构

  • Windows

    • Mingw-64 --targett=i686-w64-mingw32
  • Mac OS X

    • 检测环境:g++ --version clang++ --version

截屏2022-06-29 下午3.13.37.png

Q 安装编译器

编译器将高级语言翻译为低级语言的程序。

Q 现代编译器工作流程

// 源代码->预处理器->编译器->目标代码->链接器->可执行程序

graph LR
A[source code] --> B[preprocessor] 
B --> C[compiler] 
C --> D[object code] 
D --> E[Linker]
E --> F[exeeecutables]

  • GNU/Linux : GNU 编译器集合 (GCC)是直接的选择
  • macOS : XCode 附带 LLVM 编译器适用于 C/C++ Clang
  • Windows : Visual Studio C/C++

Q Ninja

自动化构建工具,适用于 GNU/Linux 、macOS 、Windows

实战

  • 终端
// 编译输出一句话

#include <iostream>

int main()
{

    std::cout << "hello world !\n" << std::endl;

    return 0;

}

截屏2022-06-29 下午4.46.31.png

  • cmake

截屏2022-06-29 下午4.58.13.png

  • make

截屏2022-06-29 下午4.59.33.png

  • ./hello

截屏2022-06-29 下午5.00.36.png

Q 语法

  • PROJECT 可以用来指定工程的名字和支持的语言,默认支持所有语言。
  • SEL 用来显示的指定变量。
  • MESSAGE 向终端输出用户自定义的信息。
  • ADD_EXECUTABLE 生成可执行文件。

Q 例子

// DEMO:工程名,demo:生成可执行文件名
PROJECT(DEMO)
ADD_EXECUTABLE(demo main.cpp)    

Q 插件

  • Reflect
  • ArtEngine
  • MARS
  • Furioos
  • Simulation
  • Forma

Q 官方

Q aframe

aframe

致谢

  • Ninja 官方
  • 技术社区
  • 开源开发者