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 inyxmllib inyxml.a 添加进去
  4.2 选择 Search directories >
    4.2.1 选择 Compiler >

      4.2.1.1 选择 Add >
      4.2.1.2 拷贝tinyxml的头文件的路径:F:cpp_libs inyxmlinclude // 这是告诉Compiler去哪里找头文件,Compiler编译你的项目的时候需要库的头文件
    4.2.2 选择 Linker >
      4.2.2.1 添加 o 文件所在的路径:F:cpp_libs inyxmlobj // 这一步不是必须的,如果你已经将 o 文件打包成为 a 文件或者 lib 文件(也就是步骤4.1),就无需这一步了

5. 你的项目包含tinyxml的头文件,并编译执行即可,如下

  注意这里使用的是<tinyxml.h>而不是"tinyxml.h",这是告诉预处理器到IDE指定的Search directories去找头文件,而不是在这个项目的目录下找。

注意:步骤4.1可以替换为如下操作,效果是一样的,4.1的操作是添加单个的库文件,而这个操作是添加库文件的搜索路径

    选择 Search directories > 选择 Linker > 添加F:cpp_libs inyxmllib

    这样Linker就能找到tinyxml.a了,事实上,Linker能找到目录F:cpp_libs inyxmllib下的任何库文件

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、编译你的项目,大功告成

原文地址:https://www.cnblogs.com/qrlozte/p/4100892.html