1、首先創建工程目錄:/learn/cmake/project
project目錄中需要編寫CMakeLists.txt
2、在project中創建src子目錄
放置工程源代碼,src目錄中需要編寫CMakeLists.txt
3、在project中創建build子目錄:
編譯目錄,外部編譯時:
(cmake ..) 生成的編譯需要的Makefile以及其他的中間文件,會在這個目錄中
(make) 生成的目標文件target會在build/bin目錄中
4、在project中創建doc子目錄
存放工程文檔project.txt
5、在project中添加文本文件COPYRIGHT,README;
touch COPYRIGHT
touch README
touch README
6、在工程目錄中添加一個runtarget.sh腳本,用來調用相應的二進制文件
工程構建並編譯完成之后,可以安裝:
在project中的CMakeLists.txt 中添加INSTALL指令來安裝COPYRIGHT,README,runtarget.sh腳本,/doc/project.txt,target(可執行文件)
注釋:本例子中的目標文件為hello
INSTALL(FILES COPYRIGHT README DESTINATION share/doc/cmake/t2)
INSTALL(TARGETS hello RUNTIME DESTINATION bin)
INSTALL(PROGRAMS runhello.sh DESTINATION bin)
INSTALL(DIRECTORY doc/ DESTINATION share/doc/cmake/t2)
現在進入 build 目錄進行外部編譯,注意使用 CMAKE_INSTALL_PREFIX 參數,這里我們
將它安裝到了/tmp/t2 目錄:
cmake -DCMAKE_INSTALL_PREFIX=/tmp/t2/usr ..
然后運行
make
make install
目前還存在的疑惑:
1、為什么cmake編譯好的文件需要安裝呢,直接在生成的可執行文件中運行,或者直接把可執行文件復制到相應的目錄,不可以嗎?
2、可執行文件hello 並不在項目目錄下,為什么安裝的時候,不需要指定目錄呢?
說明:文章參照《CMAKE實踐》