f;
return 0;
时1void f;t.cc:1234"/>

编写/使用C ++库

编写/使用C ++库

Writing/Using C++ Libraries

我正在寻找有关以下方面的基本示例/教程:

  • 如何在C ++中编写/编译库(对于Linux是.so文件,对于Windows是.dll文件)。

  • 如何在其他代码中导入和使用这些库。


  • 代码

    r.cc:

    1
    2
    3
    4
    5
    6
    7
    #include"t.h"

    int main()
    {
        f();
        return 0;
    }

    1
    void f();

    t.cc:

    1
    2
    3
    4
    5
    6
    7
    #include<iostream>
    #include"t.h"    

    void f()
    {
        std::cout <<"OH HAI.  I'M F." << std::endl;
    }

    但是如何,如何,如何?!

    1
    2
    3
    4
    ~$ g++ -fpic -c t.cc          # get t.o
    ~$ g++ -shared -o t.so t.o    # get t.so
    ~$ export LD_LIBRARY_PATH="." # make sure t.so is found when dynamically linked
    ~$ g++ r.cc t.so              # get an executable

    如果将共享库安装在全局库路径的某个位置,则不需要export步骤。


    推荐阅读