g++ 生成静态库和动态库

一、参数

-I (大写i)
编译程序按照-I指定的路进去搜索头文件。
-I/home/include/表示将-I/home/include/目录作为第一个寻找头文件的目录,寻找的顺序是:
 /home/include/ -->/usr/include-->/usr/local/include


-L(大写l)
后跟路径,表示链接库的路径
-L/lib/表示到/lib/目录下找库文件

-l(小写l)
后跟库文件的库名,编译程序到系统默认路进搜索,如果找不到,到当前目录,如果当前目录找不到,则到LD_LIBRARY_PATH等环境变量置顶的路进去查找,如果还找不到,那么编译程序提示找不到库。
默认路径:/lib、/usr/lib、/usr/local/lib。
-lm 表示库文件:libm.so;把库文件名的头lib和尾.so去掉就是库名

 

二、生成静态链接库和动态链接库
1、编写头文件:api.h
int add(int a,int b);

2、编写源文件:api.cpp
#include "api.h"
int add(int a,int b){
    return a+b;
}

3、编写主函数源文件:main.cpp
#include "api.h"
#include <iostream>
int main(){
    std::cout << "1 + 1 = " << ADD(1, 1) << std::endl;
    return 0;
}

4、编译生成目标文件api.o
g++ -c api.cpp

5、生成静态库:libapi.a;并使用静态库
ar crv libapi.a api.o
g++ main.cpp libapi.o -o output

6、生成动态库:libapi.so;并使用动态库
g++ -shared -fPIC -o libapi.so api.o
g++ main.cpp -L. -lapi -o output

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值