C++: Linux上静态库和动态库

来源:互联网 发布:知向濂洛之学 编辑:程序博客网 时间:2024/06/06 00:14

库由abc.h和abc.cpp组成:

~/cpp/mylib$ cat lib/abc.h

class Abc {

public:

   Abc();

   void log();

};

 

 

~/cpp/mylib$ cat lib/abc.cpp

//动态:g++  -shared -fPIC  -o libabc.so abc.h  abc.cpp

//静态:

//g++ -O -c abc.h abc.cpp

//ar -rsv libabc.a abc.o

#include "abc.h"

#include <stdio.h>

Abc::Abc() {

   printf("%s,%d\n",__FUNCTION__,__LINE__);

}

void Abc::log() {

   printf("%s,%d\n",__FUNCTION__,__LINE__);

 

测试文件abcmain.cpp:

cox@cox:~/cpp/mylib$ cat abcmain.cpp

//动态:g++  abcmain.cpp -o abcmain -labc

//静态:g++abcmain.cpp  -o abcmainstatic  -L ./ -labc

#include "abc.h"

int main() {

   Abc abc;

   abc.log();

}