码迷,mamicode.com
首页 > 系统相关 > 详细

[Linux] linux下生成静态库和动态库

时间:2018-06-03 14:36:43      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:path   out   inux   编译   linu   添加   style   hello   执行文件   

g++使用

用g++编译hello world

1. 编写hello world代码

技术分享图片

2. 使用g++命令编译生成可执行文件hello.out

技术分享图片

3. g++命令规则

预编译 g++ -E hello.cpp -o hello.i
编译    g++ -S hello.cpp -o hello.s
汇编    g++ -c hello.cpp -o hello.o

命令详解

1. 预编译 g++ -E hello.cpp -o hello.i

将#include <iostream>展开,截取了最后一屏的显示技术分享图片

2. 编译 g++ -s hello.cpp -o hello.s  截取最后一屏的显示

技术分享图片

3. 汇编,生成对象文件 g++ -c hello.cpp -o hello.c 显示二进制文件

4. 链接,编写三个文件add.h add.cpp main.cpp

技术分享图片

编译运行 g++ add.h add.cpp main.cpp -o main.out

技术分享图片

静态库与动态库生成

静态库:linux: *.a  windows: *.lib

动态库:linux: *.so  windows: *.dll

静态库的创建和使用

静态库是一些目标文件的集合体

使用ar创建一个静态库文件

1. 编译add.cpp文件生成add.o文件 g++ -c add.cpp

2. 使用ar从.o文件中创建.a文件  ar -r libadd.a add.o

3. 使用.a文件 g++ main.cpp -L. -ladd -o main

技术分享图片

动态库创建和使用

1. 生成.so文件 g++ -shared -fPIC add.cpp -o libmyadd.so

2. 使用.so文件链接main g++ main.cpp -L. -lmyadd -o main.out

3. 添加路径并运行main.out  LD_LIBRARY_PATH=. ./main.out

技术分享图片

 

[Linux] linux下生成静态库和动态库

标签:path   out   inux   编译   linu   添加   style   hello   执行文件   

原文地址:https://www.cnblogs.com/immjc/p/9128773.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!