zoukankan      html  css  js  c++  java
  • cmake实战第二篇:让我们的代码更像个工程

    为工程添加以下文件夹:

       bin 用来放编译好的可执行二进制文件。
       src 用来放源代码。
       lib 用来放编译好的库文件。
       include 用来放头文件。
    sudo mkdir -p /code_test/cmake
    cd  /code_test/cmake
    sudo mkdir p2
    cd p2
    sudo mkdir bin src lib include
    touch CMakeLists.txt  //要把目录结构告诉cmake。所以在代码根目录下写一个CMakeLists.txt。cmake在生成代码时,会读这个文件,并按照它来编译你的代码。
     

    在src目录下建个main.cpp文件

    //main.cpp文件

    #include <iostream>
    using namespace std;  
    int main(int argc, char**argv)
    {
        cout<<"Hello Cmake!"<<endl;
        return 0;
    }

    //src目录下的CMakeLists.txt: 

    ADD_EXECUTABLE( main main.cpp )

    //根目录下的CMakeLists.txt:

    CMAKE_MINIMUM_REQUIRED( VERSION 2.8 ) #设定版本
    PROJECT( HELLO) 
    SET( CMAKE_CXX_COMPILER "g++") #设定编译器    
    SET( EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)     
    
    #设定存放编译出来的库文件的目录
    SET( LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib) 
    
    #并且把该目录设为连接目录
    LINK_DIRECTORIES( ${PROJECT_SOURCE_DIR}/lib)
        
    #设定头文件目录
    INCLUDE_DIRECTORIES( ${PROJECT_SOURCE_DIR}/include)
        
    #增加子文件夹,也就是进入源代码文件夹继续构建
    ADD_SUBDIRECTORY( ${PROJECT_SOURCE_DIR}/src)

    编译:

    mkdir build
    cd build
    cmake ..
    make

    到bin文件夹下
    cd ..
    cd bin
    运行:
    ./main

     
  • 相关阅读:
    java接口请求超时处理方法
    Spring Cloud GateWay 服务网关
    Mysql中on条件和where条件的使用总结
    Elasticsearch之javaAqi
    Elasticsearch—CRUD
    ElasticSearch的版本控制和Mapping创建
    cmd定时任务计划
    CSS简介及使用
    html简介及应用
    Python基础(十五)-IO模型
  • 原文地址:https://www.cnblogs.com/zjiaxing/p/5557648.html
Copyright © 2011-2022 走看看