Linux下g++编译以及使用静态库和动态库的方法详解


当前第2页 返回上一页

Linux下用生成静态库的命令 ar 处理 myAPI.o 文件生成静态库文件,生成的库文件应遵循规范,及linux下库文件加“lib”前缀。所以针对本例,通过如下一条命令即可生成 libmyAPI.a 静态库:

1

ar crv libmyAPI.a myAPI.o

接下来即可在项目编译过程中利用静态库了,此时 myAPI.cpp 这个库函数的定义文件已经不需要了。main.cpp 编译命令如下(注意,依赖的静态库文件要放在被依赖项后面):

1

g++ main.cpp libmyAPI.a -o output

编译通过后即可运行可执行文件 output , 此时 libmyAPI.a 也已经是不需要的了。执行命令并输出结果如下:

1

./output

2.生成动态库并使用

linux下编译时通过 -shared 参数可以生成动态库(.so)文件,如下

1

g++ -shared -fPIC -o libmyAPI.so myAPI.o

生成的动态库在编译时需要声明,运行时需要被依赖。声明如下

1

g++ main.cpp -L. -lmyAPI -o output

”-L.”标记告诉G++函数库可能位于当前目录;使用”-lmyAPI”标记来告诉G++驱动程序在连接阶段引用共享函数库libmyAPI.so。

使用时如果提示如下错误,则将 libmyAPI.so 移到 /usr/lib 目录下即可:

1

./output

以上就是Linux下g++编译以及使用静态库和动态库的方法详解的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

Linux ping不通外网

Linux不常用却很有用的命令

怎么在Linux系统下安装redis

超线程和多线程的区别?

Linux安装redis教程

Linux环境下如何更新node版本(升级)

查看Linux多少位

Linux如何关闭正在运行的脚本

Linux中如何使用echo命令?(用法详解)

预付费实例与按量付费实例可以变更的规格族

更多相关阅读请进入《Linux》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...