Clion(CMake工具)中引入第三方庫的詳細方法

前言

因為自己最近在學Redis,想要在C++中獲取到Redis內存數據庫中的數據,需要使用Redis客戶端來連接Redis傳輸命令並接收數據,在Redis官方網站上推薦的客戶端中選擇瞭acl-redis。而Clion是一款非常優秀的C++集成開發環境,Clion選擇瞭CMake作為構建工具,所以需要在CMake配置文件中進行配置。

如何配置

CMake的所有配置都寫在一個叫CMakeLists.txt的文件當中,所有的配置都寫在該文件當中。

這是我的工程目錄結構,Include文件夾為acl-redis的所有頭文件,lib文件夾為acl-redis的靜態庫,在下面的介紹過程中會以此為例子來講解如何引入lib文件夾下的靜態庫。

聲明路徑變量

#聲明頭文件路徑
set(INC_DIR ./include)

#聲明鏈接庫路徑
set(LINK_DIR ./lib)

這裡采用的是相對路徑的方式來引用頭文件和庫文件,這樣工程位置發生改變的時候,可以不用修改配置文件,其中./表示當前路徑。

引入頭文件和庫文件

#引入頭文件
include_directories(${INC_DIR})

#引入庫文件
link_directories(${LINK_DIR})

在CMake中,${}的語法含義是獲取變量的值,這和shell中獲取變量值的方式很相似。在項目中引入瞭頭文件和庫文件,這樣在編譯的時候才知道到哪裡去尋找相應的頭文件和庫文件。

設置編譯文件

#添加編譯文件
add_executable(TestRedis cluster.cpp)

TestRedis為我在CMake中設置的項目名稱(後面會將完整的CMake文件展示出來),cluster.cpp為我要編譯的文件。

引入第三方庫

#將第三方庫鏈接在一起
target_link_libraries(TestRedis lib_acl_cpp.a lib_acl.a lib_protocol.a pthread)

此時將需要鏈接的第三方庫鏈接在一起即可。

完整的CMake配置文件

#設置cmake版本
cmake_minimum_required(VERSION 3.15)

#項目名字
project(TestRedis)

#設置編譯版本
set(CMAKE_CXX_STANDARD 14)

#設置頭文件路徑
set(INC_DIR ./include)

#設置鏈接庫路徑
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++中第三方庫的文件命名是有對應命名規則的,靜態庫的名稱一般是libxxx.a,動態庫的一般名稱是libxxx.so,在我引入第三方庫的時候,如果將庫名稱lib_acl_cpp.a重命名為acl_app.a再引用的話,將出現找不到庫文件的錯誤,這一點沒有找到原因。

CMake配置文件中的一些語句可以適當調整順序,但add_executable語句必須要在target_link_libraries語句的前面。

到此這篇關於Clion(CMake工具)中引入第三方庫的詳細方法的文章就介紹到這瞭,更多相關Clion引入第三方庫內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: