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

     
  • 相关阅读:
    SpringBoot的缓存
    jsp标签指定id区域内容显示和隐藏
    Linux awk统计日志中出现过的IP(或出现次数最多的N个IP)
    回文数
    算法z形字符串
    最长回文字符串
    redis与Mysql数据同步
    算法(1)
    滑动窗口算法
    HTTP长连接和短连接
  • 原文地址:https://www.cnblogs.com/zjiaxing/p/5557648.html
Copyright © 2011-2022 走看看