日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

转:CMake 使用方法

發(fā)布時間:2025/3/20 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 转:CMake 使用方法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

CMake是一個跨平臺的安裝(編譯)工具,可以用簡單的語句來描述所有平臺的安裝(編譯過程)。他能夠輸出各種各樣的makefile或者project文件,能測試編譯器所支持的C++特性,類似UNIX下的automake。

CMake 使用方法

CMake的所有的語句都寫在一個叫:CMakeLists.txt 的文件中。當(dāng)CMakeLists.txt文件確定后,可以用ccmake命令對相關(guān) 的變量值進行配置。這個命令必須指向CMakeLists.txt所在的目錄。配置完成之后,應(yīng)用cmake命令生成相應(yīng)的makefile(在Unix like系統(tǒng)下)或者 project文件(指定用window下的相應(yīng)編程工具編譯時)。

??? 其基本操作流程為:

  • $> ccmake directory

  • $> cmake directory

  • $> make

  • ? 其中directory為CMakeList.txt所在目錄;

    • 第一條語句用于配置編譯選項,如VTK_DIR目錄 ,一般這一步不需要配置,直接執(zhí)行第二條語句即可,但當(dāng)出現(xiàn)錯誤時,這里就需要認為配置了,這一步才真正派上用場;
    • 第二條命令用于根據(jù)CMakeLists.txt生成Makefile文件;
    • 第三條命令用于執(zhí)行Makefile文件,編譯程序,生成可執(zhí)行文件;

    CMake的執(zhí)行就是這么簡單,其難點在于如何編寫CMakeLists.txt文件,下面結(jié)合例子簡單介紹CMakeLists.txt的編寫,看下面這個CMakeLists.txt

  • #project name

  • PROJECT(test_math)

  • #head file path

  • INCLUDE_DIRECTORIES(

  • include

  • )

  • #source directory

  • AUX_SOURCE_DIRECTORY(src DIR_SRCS)

  • #set environment variable

  • SET(TEST_MATH

  • ${DIR_SRCS}

  • )

  • #set extern libraries

  • SET(LIBRARIES

  • libm.so

  • )

  • #add executable file

  • ADD_EXECUTABLE(../bin/bin ${TEST_MATH})

  • #add link library

  • TARGET_LINK_LIBRARIES(../bin/bin ${LIBRARIES})

  • ??????????? 或者用下面這個CMakeLists.txt

  • #project name

  • PROJECT(test_math)

  • #head file path

  • INCLUDE_DIRECTORIES(

  • include

  • )

  • #source directory

  • AUX_SOURCE_DIRECTORY(src DIR_SRCS)

  • #set environment variable

  • SET(TEST_MATH

  • ${DIR_SRCS}

  • )

  • #add executable file

  • ADD_EXECUTABLE(../bin/bin ${TEST_MATH})

  • #add link library

  • TARGET_LINK_LIBRARIES(../bin/bin m)

  • 這是一個測試數(shù)學(xué)函數(shù)的程序的CMakeLists.txt,"#"后面為注釋的內(nèi)容,CMake的命令全部為大寫

    第2行指定生成的工程名為test_math

    第4行指定頭文件目錄為include

    第8行指定源文件目錄為src,并將其賦值給環(huán)境變量DIR_SRCS

    第10行設(shè)定環(huán)境變量TEST_MATH的值為環(huán)境變量DIR_SRCS的值,此處用于顯示如何用環(huán)境變量對環(huán)境變量進行賦值

    第14行將數(shù)學(xué)函數(shù)庫賦值給環(huán)境變量LIBRARIES,當(dāng)然,可以不用這個環(huán)境變量,而在后面直接使用該庫名

    第18行用于指定生成文件,將環(huán)境變量TEST_MATH目錄下的所有文件編譯生成../bin目錄下的可執(zhí)行文件bin

    第20行指定../bin/bin執(zhí)行時的鏈接庫為環(huán)境變量LIBRARIES的值-libm.so

    下面給出源文件
    /src/main.c:

  • #include<stdio.h>

  • #include"../include/a.h"

  • int main()

  • {

  • double b=25.0;

  • double a=0.0;

  • ??? a=get_sqrt(b);

  • printf("a is %lf, b is %lf\n",a,b);

  • return 0;

  • }

  • /src/a.c

  • #include"../include/a.h"

  • double get_sqrt(double var1)

  • {

  • return sqrt(var1);

  • }

  • /include/a.h

    #ifndef? A_FILE_HEADER_INC

  • #define? A_FILE_HEADER_INC

  • #include<math.h>

  • double get_sqrt(double var1);

  • #endif

  • 將CMakeLists.txt放在當(dāng)前目錄下,執(zhí)行CMakeLists.txt

  • $> cmake .

  • $> make

  • 即可生成可執(zhí)行文件,在目錄/bin下的bin文件,好了運行看其效果是否和所想一樣。

    總結(jié)

    以上是生活随笔為你收集整理的转:CMake 使用方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。