zoukankan      html  css  js  c++  java
  • [程式設計] 最簡單的 CMake 使用說明 – how to use cmake

    我們常常改別人已經寫好的 open source 專案, 讓我有一種感覺 … 似乎大的系統都會有一套 building system, 先解析平台上的 toolchain, 使得系統可以容易安裝到其他平台上.

    在 Unix 世界裡面, 最常見的就是 GNU Building System. 也就是你常見的先下 .configure -參數 指令, 然後會產生一堆 Makefile. 使用 building system 有另外一個好處, 那就是我們的 source code 就不會被某個編譯環境鎖住了 (ex: Visual Studio .Net).

     

    今天要介紹的是 CMake!

    CMake 指令, 可以讓我們的使用者更容易把程式建構於不同的平台. 重要的是, 它可以讓我選擇要產生 MakefileVisual Studio .Net 的專案檔 (sln 專案檔).

    本文的主要結構為:

            1. 最簡單的 CMakeLists.txt 範例

            2. 如何在 Cygwin 下, 自動產生 Makefile

            3. 如何在 Windows 下, 自動產生 Visual Studio .Net 專案檔 (sln)

    我想達成的目的, 如下所示:

    cmake_structure

    先把範例端上來

    -------------------- fun.cpp --------------------

    int add(int a,int b){
        return a+b;
    }

    // fun.h

    int add(int a,int b);

    -------------------- main.cpp --------------------

    #include "fun.h"
    #include <stdio.h>

    int main(){
        int ans=add(1,2);
        printf("ans=%d",ans);
        return 0;
    }

    我想要做的事情是

    1. 建立一個 library 檔稱為 MyLibrary, 裡面包含 fun.cpp

    2. 自動建立 makefile, 把 main.cpp 與 MyLibrary 連接並且編譯.

    用 cmake 該怎麼作?

    Step 1: 寫一個 CMakeLists.txt, 描述該怎麼編譯你的 source

    ex:

    -------------------- CMakeLists.txt -----------------

    project(MyProject)

    add_library(MyLibrary fun.cpp)  # 建立程式庫 MyLibrary
    add_executable(MyProgram main.cpp) # 建立執行檔 MyProgram


    # 產生執行檔 MyProgram 與 程式庫 MyLibrary 連結指令
    target_link_libraries(MyProgram MyLibrary)

    -------------------- end of CMakeLists.txt -----------------

    Step 2: 把它與你的 source files 放在一起

    ex:

    cmake_CMakeLists

    Step 3: Enjoy

     

    選擇你要產生的專案

    自動產生 Makefile 的作法

     

    Step 1: 在要放置 binary 的位置, 直接下指令 cmake [source code 目錄位置]

    ex: 我在 ~/cmake_demo/bin 這個空目錄中, 下 cmake ../source 指令

    cmake

     Step 2: 來看看結果如何? (cmake 會把 Makefile 放在 bin/ 中)

    01_Makefile

     Step 3: 在 bin/ 下 make 指令, 看到底會不會動

    02_in_process

    嗯! 確實可以執行! ^_^

    02_result

    ----------------------------------------------------------------------------------------

    產生 Microsoft Visual Studio 專案的作法

     

    Step 1: 選擇編譯結果目錄, 我們希望

        a.  指定 source code 的位置在: cmake_demo/source

        b. 編譯後的結果放在: cmake_demo/bin

        這樣作就不會把 source code 目錄弄髒了.

    04_Windows_Configure

    Step 2: 選擇產生 Visual Studio 8 2005 專案檔

    05_win_Choose_Target_and_Specify_Native_compilers

    Step 3: 設定編譯器所在位置

        ex: C:\Program Files\Microsoft Visual Studio 8\VC\bin

    06_win_Choose_VisualStudio_cl

    Step 4: 選擇 [Generate] 開始產生 Visual Studio 專案

    07_win_reConfigure_and_runGenerate

    07_win_run_testing

    08_win_solution_result

    Enjoy.

    by Jing

  • 相关阅读:
    Value '0000-00-00' can not be represented as java.sql.Date
    mysql建表设置两个默认CURRENT_TIMESTAMP的技巧
    PowerDesigner 的mysql PDM 的COMMENT注释
    tomcat配置及优化
    Tomcat7调优及JVM性能优化for Linux环境
    maven混淆Java代码
    通过Maven配置测试环境和开发环境连接不同的数据库
    删除电脑中用强制删除不能删除的bat命令脚本
    在Linux中设置共享目录
    ftp以及smb的配置
  • 原文地址:https://www.cnblogs.com/Jing/p/1567393.html
Copyright © 2011-2022 走看看