c++ 如何使用第三方的library


感謝以下參考資料:

  關於如何使用第三方的庫:

    http://stackoverflow.com/questions/21942545/how-to-install-third-party-libraries

    http://www.learncpp.com/cpp-tutorial/a3-using-libraries-with-codeblocks/

    http://forums.codeblocks.org/index.php?topic=9366.0

  關於編譯靜態庫或者動態庫:

    http://www.cnblogs.com/woainilsr/archive/2013/07/10/3182891.html

 

正文:

 

IDE:CodeBlocks,編譯器:MinGW GNU GCC

 

步驟如下:

1. 把tinyxml指定的需要包含的頭文件放入名為include的文件夾中
2. g++ -c *.cpp // 把所有 cpp 文件編譯為 o 文件,但是不進行鏈接,並把所有 o 文件放到名為obj的文件夾中
3. ar -r tinyxml.a *.o // 把 o 文件 打包成庫文件(后綴名通常為 a 或者 lib),以后你的Project進行構建的時候 Linker 用來 鏈接成 exe的時候用。 把tinyxml.a放入名為lib的文件夾中
4. 打開你的項目 選擇 Project > Build Options
  4.1 選擇 Linker settings >
    4.1.1 對 Link libraries 點擊 Add,把目錄:F:\cpp_libs\tinyxml\lib\tinyxml.a 添加進去
  4.2 選擇 Search directories >
    4.2.1 選擇 Compiler >

      4.2.1.1 選擇 Add >
      4.2.1.2 拷貝tinyxml的頭文件的路徑:F:\cpp_libs\tinyxml\include // 這是告訴Compiler去哪里找頭文件,Compiler編譯你的項目的時候需要庫的頭文件
    4.2.2 選擇 Linker >
      4.2.2.1 添加 o 文件所在的路徑:F:\cpp_libs\tinyxml\obj // 這一步不是必須的,如果你已經將 o 文件打包成為 a 文件或者 lib 文件(也就是步驟4.1),就無需這一步了

5. 你的項目包含tinyxml的頭文件,並編譯執行即可,如下

  注意這里使用的是<tinyxml.h>而不是"tinyxml.h",這是告訴預處理器到IDE指定的Search directories去找頭文件,而不是在這個項目的目錄下找。

注意:步驟4.1可以替換為如下操作,效果是一樣的,4.1的操作是添加單個的庫文件,而這個操作是添加庫文件的搜索路徑

    選擇 Search directories > 選擇 Linker > 添加F:\cpp_libs\tinyxml\lib

    這樣Linker就能找到tinyxml.a了,事實上,Linker能找到目錄F:\cpp_libs\tinyxml\lib下的任何庫文件

 

main.cpp

#include <iostream>
#include <tinyxml.h>

using namespace std;

int main() {
    const char *CFG_FILE= "E:/myprojects/test/config.xml";
    TiXmlDocument doc(CFG_FILE);
    if(!doc.LoadFile()) {
        std::cout << "Unable to open " << CFG_FILE << std::endl;
        return 1;
    }
    TiXmlNode *root = doc.RootElement();
    const char *input_file =
        root->FirstChild("input-file")
        ->ToElement()
        ->GetText();
    cout << input_file << endl;
    return 0;
}

config.xml

<config>
    <input-file>sample.txt</input-file>
</config>

運行結果:

sample.txt

 

項目地址(不含源代碼):http://pan.baidu.com/s/1o6BNqY2

 

總結,使用第三方庫的方法(假定庫名為FOO):

1、編譯FOO的cpp文件(連同需要的h文件)一起編譯為o文件

2、將o文件打包為a文件或者lib文件

3、為你的項目導入該a文件或者lib文件

4、為你的項目指定FOO庫所需要的頭文件的目錄

5、編譯你的項目,大功告成


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM