《4》cmake管理工程的例子
前面我們以hello world工程為例,用cmake進行管理.
但是還差一點.
回顧一下上次的工程結構:

其中紅色部分是cmake執(zhí)行的時候自動幫助我們生成的.
我們希望存放庫文件和可執(zhí)行文件的文件夾名字是自己控制的.
比如:
想要把生成的庫文件存放到: out_lib文件夾中
想要把生成的可執(zhí)行文件放到: out_bin文件夾中
就如下圖中的藍色部分:

那么,頂層的CMakeLists.txt是不用修改的.
只需要修改子文件夾中兩個CMakeLists.txt就行.
修改的內容實際上是在生成庫或可執(zhí)行文件之前,加入一個修改路徑的命令即可.
對于lib_hello文件夾下的CMakeLists.txt加入橙色部分(注意 $前有空格,set傳入的是兩個變量):

對于src_main文件夾下的CMakeLists.txt加入橙色部分(注意 $前有空格,set傳入的是兩個變量):


運行:
調到out_put文件夾下;
運行 cmake ../
運行 make
然后到out_bin目錄下,運行可執(zhí)行文件hello

之后cmake生成的文件都會在out_put文件夾下.
如果想要重新編譯,可以把out_put文件夾刪空,再次運行cmake即可.
其實,這一節(jié)主要是講解了set命令,
它用于修改內部變量的值.(相當于修改電腦環(huán)境變量的值)
EXECUTABLE_OUTPUT_PATH
LIBRARY_OUTPUT_PATH
這些都是cmake內部原來就規(guī)定好的值,
后面的第二個變量 ${}就是用于取出{}里面變量的值.
標簽: