cmake学习

一、创建一个cmake工程

Qt creator:file->New File or Porject...>>Non-Qt Project>>Plain C Project//或者//Plain C++ Project

CMakeLists.txt:

 1 cmake_minimum_required(VERSION 3.7.1)
 2 
 3 project(hello-world)
 4 
 5 set(SOURCE_FILES main.c)
 6 
 7 message(STATUS "This is BINARY dir " ${PROJECT_BINARY_DIR})
 8 message(STATUS "This is SOURCE dir " ${PROJECT_SOURCE_DIR})
 9 
10 add_executable(hello-world ${SOURCE_FILES})
CMakeLists

main.c:

  1. #include <stdio.h>

  2. int main() {
  3.     printf("Hello World. ");
  4.     
  5.     return 0;
  6. }

可以再文件目录下创建build,然后再build目录下执行cmake ..
这样的话创建的cmake和make中间文件就在build目录下了。执行make
然后./hello-world

二、创建子目录文件

helloCMake/CMakeLists.txt:

  1. cmake_minimum_required(VERSION 3.2)

  2. project(helloCMake)
  3. ADD_SUBDIRECTORY(src bin)

helloCMake/src/CMakeLists.txt:

  1. cmake_minimum_required(VERSION 2.8.4)

  2. add_executable(helloCMake main.cpp)

main.cpp:

  1. #include <iostream>

  2. using namespace std;

  3. int main()
  4. {
  5.     cout << "Hello World!" << endl;
  6.     return 0;
  7. }


CMake的语法总结:
PROJECT 指令的语法是:

PROJECT(projectname [CXX] [C] [Java])
  1. project(hello cxx c)

SET 指令的语法是:
SET(VAR [VALUE] [CACHE TYPE DOCSTRING [FORCE]])
  1. set(PX4_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")

MESSAGE 指令的语法是:
MESSAGE([SEND_ERROR | STATUS | FATAL_ERROR] "message to display"...)
  1. message(FATAL_ERROR "Update CMake and try again" )
ADD_SUBDIRECTORY 指令
ADD_SUBDIRECTORY(source_dir [binary_dir] [EXCLUDE_FROM_ALL])
  1. ADD_SUBDIRECTORY(src bin)




无欲速,无见小利。欲速,则不达;见小利,则大事不成。
原文地址:https://www.cnblogs.com/ch122633/p/7363230.html