zoukankan      html  css  js  c++  java
  • 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)




    无欲速,无见小利。欲速,则不达;见小利,则大事不成。
  • 相关阅读:
    codefroces 946F Fibonacci String Subsequences
    [HNOI2010]MATRIX 矩阵
    [HNOI2010]STONE取石头游戏
    [HNOI2010]PLANAR
    [HNOI2010]BUS 公交线路
    [HNOI2010]CHORUS 合唱队
    [HNOI2011]赛车游戏
    [HNOI2011]数矩形
    [HNOI2012]与非
    [BZOJ4200][NOI2015]小园丁与老司机
  • 原文地址:https://www.cnblogs.com/ch122633/p/7363230.html
Copyright © 2011-2022 走看看