欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2021年02月24日 10:38:49   作者:碳的還原性  
這篇文章主要介紹了Clion(CMake工具)中引入第三方庫的詳細方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

前言

因為自己最近在學Redis,想要在C++中獲取到Redis內(nèi)存數(shù)據(jù)庫中的數(shù)據(jù),需要使用Redis客戶端來連接Redis傳輸命令并接收數(shù)據(jù),在Redis官方網(wǎng)站上推薦的客戶端中選擇了acl-redis。而Clion是一款非常優(yōu)秀的C++集成開發(fā)環(huán)境,Clion選擇了CMake作為構(gòu)建工具,所以需要在CMake配置文件中進行配置。

如何配置

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中獲取變量值的方式很相似。在項目中引入了頭文件和庫文件,這樣在編譯的時候才知道到哪里去尋找相應的頭文件和庫文件。

設置編譯文件

#添加編譯文件
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++中第三方庫的文件命名是有對應命名規(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語句的前面。

到此這篇關于Clion(CMake工具)中引入第三方庫的詳細方法的文章就介紹到這了,更多相關Clion引入第三方庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • C++11中l(wèi)ambda、std::function和std:bind詳解

    C++11中l(wèi)ambda、std::function和std:bind詳解

    大家都知道C++11中增加了許多的新特性,下面在這篇文中我們就來聊一下lambda表達式,閉包,std::function以及std::bind。文中介紹的很詳細,相信對大家具有一定的參考價值,有需要的朋友們下面來一起看看吧。
    2017-01-01
  • C語言基礎知識變量的作用域和存儲方式詳細介紹

    C語言基礎知識變量的作用域和存儲方式詳細介紹

    這篇文章主要介紹了C語言基礎知識變量的作用域和存儲方式詳細介紹的相關資料,需要的朋友可以參考下
    2017-01-01
  • C語言值傳遞和地址傳遞詳解

    C語言值傳遞和地址傳遞詳解

    大家好,本篇文章主要講的是C語言值傳遞和地址傳遞詳解,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • 麻將游戲算法深入解析及實現(xiàn)代碼

    麻將游戲算法深入解析及實現(xiàn)代碼

    這篇文章主要介紹了麻將游戲算法深入解析及實現(xiàn)代碼的相關資料,需要的朋友可以參考下
    2017-03-03
  • c語言實現(xiàn)的帶通配符匹配算法

    c語言實現(xiàn)的帶通配符匹配算法

    這篇文章主要介紹了c語言實現(xiàn)的帶通配符匹配算法,需要的朋友可以參考下
    2015-03-03
  • C語言結(jié)構(gòu)體指針引用詳解

    C語言結(jié)構(gòu)體指針引用詳解

    C語言中結(jié)構(gòu)體指針,可細分為指向結(jié)構(gòu)體變量的指針和指向結(jié)構(gòu)體數(shù)組的指針。本文將詳細為大家介紹一下這兩種結(jié)構(gòu)體指針如何引用,需要的小伙伴可以參考一下
    2021-12-12
  • C++20中的span容器及用法小結(jié)

    C++20中的span容器及用法小結(jié)

    std::span 是一個非常實用的工具,可以方便地對數(shù)據(jù)進行訪問和處理,同時也可以提高代碼的可讀性、可維護性和安全性,這篇文章主要介紹了C++20中的span容器,需要的朋友可以參考下
    2023-03-03
  • C/C++中CJSON的使用(創(chuàng)建與解析JSON數(shù)據(jù))

    C/C++中CJSON的使用(創(chuàng)建與解析JSON數(shù)據(jù))

    cJSON是一個超輕巧的JSON解析器,本文主要介紹了C/C++中CJSON的使用(創(chuàng)建與解析JSON數(shù)據(jù)),具有一定的參考價值,感興趣的可以了解一下
    2021-09-09
  • C++如何去掉字符串首尾的空格

    C++如何去掉字符串首尾的空格

    這篇文章主要介紹了C++如何去掉字符串首尾的空格問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C++二維數(shù)組螺旋加密信息

    C++二維數(shù)組螺旋加密信息

    大家好,本篇文章主要講的是C++二維數(shù)組螺旋加密信息,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12

最新評論