Linux下 gcc 编译常用参数 | 静态库-动态库 |
【摘要】
全网搜索 gcc相关知识,最终找到一个相对优秀的博文,推荐给大家;
https://www.cnblogs.com/QG-whz/p/5456720.html
本博文仅仅是个引路和粗糙...
全网搜索 gcc相关知识,最终找到一个相对优秀的博文,推荐给大家;
本博文仅仅是个引路和粗糙备份
- 使用外部库
测试示例–得到静态库
- 三个代码文件如下:
hello.c
#include<stdio.h>
#include"hello.h"
void printHello()
{
printf("hello moli \n");
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
hello.h
#ifndef _HELLO_
#define _HELLO_
void printHello();
#endif
- 1
- 2
- 3
- 4
main.c
#include<stdio.h>
#include"hello.h"
int main()
{
printHello();
return 0;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 编译得到可执行文件
gcc hello.h hello.c main.c
- 1
- 分别编译
gcc -c hello.c main.c
ll
- 1
- 2
- 效果如下:
- AR 归档工具,rcs表示replace and create 得到静态库:
ar rcs lib.a hello.o main.o
ll
- 1
- 2
- 3
- 效果如下:
- 通过静态库来得到 可执行文件
gcc lib.a -o run
./run
hello moli
- 1
- 2
- 3
- 4
- 5
- 6
生成得到动态库
- 得到动态库
gcc -shared -fPIC -o last.so hello.c
- 1
- 使用动态库(把 so 文件 链接到 主程序中)
gcc -o last.out main.c ./last.so
./last.out
hello moli
- 1
- 2
- 3
- 4
- 5
- 6
so 动态库放到 特定位置,Linux 项目代码运行时可以找到,即可使用 ;
文章来源: positive.blog.csdn.net,作者:墨理学AI,版权归原作者所有,如需转载,请联系作者。
原文链接:positive.blog.csdn.net/article/details/114672005
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)