// "SayHello.h"
class SayHello{
public:
void say();
void sayhi();
};
//SayHello.cpp
#include "SayHello.h"
#include
using namespace std;
void SayHello::say(){
cout<<"hello"<
}
//SayOther.cpp
#include "SayHello.h"
#include
using namespace std;
void SayHello::sayhi(){
cout<<"hi"<
}
//Main.cpp
#include "SayHello.h"
int main(){
SayHello* sayHello=new SayHello();
sayHello->say();
sayHello->sayhi();
return 0;
}
创建静态库
用 -c 参数生成目标文件但不链接
g++ -c SayHello.cpp g++ -c SayOther.cpp
这样各生成一个 .o 的文件
打成静态库名为 libHello.a
ar -r libHello.a SayHello.o SayOther.o
这样当 Main.cpp 用到库时就这样编译
g++ Main.cpp libHello.a -o Main 就会生成名子为 Main 的可执行文件
创建动态库
同样先生成目标文件不链接
g++ -c -fpic SayOther.cpp
g++ -c -fpic SayHello.cpp
-fpic 的意思是位置独立代码 ,指示编译程序生成的代码要适合共享库的内容这样的代码能够根据载入内存的位置计算内部地址