如何在Clion中引入第三方庫?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
站在用戶的角度思考問題,與客戶深入溝通,找到南寧網(wǎng)站設(shè)計與南寧網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、虛擬主機、企業(yè)郵箱。業(yè)務(wù)覆蓋南寧地區(qū)。CMake的所有配置都寫在一個叫CMakeLists.txt的文件當中,所有的配置都寫在該文件當中。
這是我的工程目錄結(jié)構(gòu),Include文件夾為acl-redis的所有頭文件,lib文件夾為acl-redis的靜態(tài)庫,在下面的介紹過程中會以此為例子來講解如何引入lib文件夾下的靜態(tài)庫。
#聲明頭文件路徑 set(INC_DIR ./include) #聲明鏈接庫路徑 set(LINK_DIR ./lib)
這里采用的是相對路徑的方式來引用頭文件和庫文件,這樣工程位置發(fā)生改變的時候,可以不用修改配置文件,其中./表示當前路徑。
#引入頭文件 include_directories(${INC_DIR}) #引入庫文件 link_directories(${LINK_DIR})
在CMake中,${}的語法含義是獲取變量的值,這和shell中獲取變量值的方式很相似。在項目中引入了頭文件和庫文件,這樣在編譯的時候才知道到哪里去尋找相應(yīng)的頭文件和庫文件。
#添加編譯文件 add_executable(TestRedis cluster.cpp)
TestRedis為我在CMake中設(shè)置的項目名稱(后面會將完整的CMake文件展示出來),cluster.cpp為我要編譯的文件。
#將第三方庫鏈接在一起 target_link_libraries(TestRedis lib_acl_cpp.a lib_acl.a lib_protocol.a pthread)
此時將需要鏈接的第三方庫鏈接在一起即可。
#設(shè)置cmake版本 cmake_minimum_required(VERSION 3.15) #項目名字 project(TestRedis) #設(shè)置編譯版本 set(CMAKE_CXX_STANDARD 14) #設(shè)置頭文件路徑 set(INC_DIR ./include) #設(shè)置鏈接庫路徑 set(LINK_DIR ./lib) #引入頭文件 include_directories(${INC_DIR}) #引入庫文件 link_directories(${LINK_DIR}) #編譯文件 add_executable(TestRedis cluster.cpp) #將第三方庫連接在一起 target_link_libraries(TestRedis lib_acl_cpp.a lib_acl.a lib_protocol.a pthread)
C++中第三方庫的文件命名是有對應(yīng)命名規(guī)則的,靜態(tài)庫的名稱一般是libxxx.a,動態(tài)庫的一般名稱是libxxx.so,在我引入第三方庫的時候,如果將庫名稱lib_acl_cpp.a重命名為acl_app.a再引用的話,將出現(xiàn)找不到庫文件的錯誤,這一點沒有找到原因。
CMake配置文件中的一些語句可以適當調(diào)整順序,但add_executable語句必須要在target_link_libraries語句的前面。
看完上述內(nèi)容,你們掌握如何在Clion中引入第三方庫的方法了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!