KDevelop是一個支持多程序設計語言的集成開發環境。它運行於linux和其它類unix環境。
KDevelop本身不包含編譯器,而是調用其它編譯器來編譯程序。
一、KDevelop安裝
打開命令窗口:
1. 安裝gcc(編譯器)
sudo apt-get build-dep gcc
sudo apt-get install build-essential
2. 安裝kdevelop
sudo apt-get install kdevelop
3. 安裝cmake等
sudo apt-get install automake autoconf g++ libtool cmake
創建桌面快捷方式:直接從/usr/share/applications/kde4目錄下找到KDevelop 4圖標,右擊,然後Copy To...桌面
即可。
也可以從終端打開kDevelop軟體:打開一個終端,輸入:kdevelop
二、KDevelop使用
1、啟動kdevelop,新建New Project
2、默認的選擇,並填寫工程名。
3、默認選擇!版本控制,默認選擇。
4、添加CMake編譯的時候一些配置參數,默認不填寫。
5、build進行編譯:編譯結果。
KDevelop具體使用步驟參考這篇文章:
https://blog.csdn.net/qq_27806947/article/details/80119294
三、KDevelop下項目編譯加入頭文件目錄、靜態庫
添加頭目錄,在CMakeLists.txt文件中增加INCLUDE_DIRECTORIES(&34;)
添加庫目錄,在CMakeLists.txt文件中增加LINK_DIRECTORIES( &34;)
添加靜態庫文件,在中CMakeLists.txt文件中target_link_libraries(${PROJECT_NAME} 庫文件名)
比如:調用線程函數,需要使用pthread庫。
KDevelop3以下的版本,「在&34;的標籤面中,在附加庫一欄中填入你所用到的庫」或」在link
option中加-pthread
KDevelop4以及以上版本,工程的右擊菜單的」打開配置「中,cmake配置頁下點」顯示高級「,再選上」顯示高級變
量「,會出現很多變量,在CMAKE_EXE_LINKER_FLAGS中加入需要的編譯參數-lpthread即可。
同時在CMakeLists.txt文件中target_link_libraries(${PROJECT_NAME} ${CMAKE_EXE_LINKER_FLAGS})
或者直接在中CMakeLists.txt文件中target_link_libraries(${PROJECT_NAME} pthread)
四、CMakeLists.txt編寫和使用方法
1、使用方法
一般把CMakeLists.txt文件放在工程目錄下,使用時,先創建一個叫build的文件夾(這個並非必須,只
是生成的Makefile等文件放在build裡比較整齊),然後執行下列操作:
cd build
cmake ..
make
其中cmake .. 在build裡生成Makefile,make應當在有Makefile的目錄下,根據Makefile生成可執行文件。
2、編寫方法
添加c++11標準支持
set( CMAKE_CXX_FLAGS &34; )
找到後面需要庫和頭文件的包
find_package(包的名稱及最低版本)
頭文件
include_directories(&34;)
include_directories(
${PROJECT_SOURCE_DIR}/include
設置路徑(下面生成共享庫的路徑)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib)
創建共享庫(把工程內的cpp文件都創建成共享庫文件,方便通過頭文件來調用)
add_library(${PROJECT_NAME} SHARED
src/cpp文件名
……
)
${PROJECT_NAME}是生成的庫名 表示生成的共享庫文件就叫做 lib工程名.so
連結庫
編譯主函數,生成可執行文件
可執行文件生成
add_executable(要生成的可執行文件名 從工程目錄下寫起的主函數文件名)
34;/home/xx/xx&指定使用哪種版本的OpenCV,必須在project前
LIST(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules)find_package(<Name>)命令首先會在模塊路徑中尋找 Find<name>.cmake
find_package (<name2>)
...
include_directories(<name_INCLUDE_DIRS>)添加相關庫的頭文件路徑
link_directories(<name_LIB_DIRS>)添加相關庫的庫文件路徑
target_link_libraries(${PROJECT_NAME} $(name1_LIBS) ...) #將目標文件與庫文件進行連結
這樣一個完整的CMakeLists.txt就完成了。