1、文件类型介绍
2、out可执行文件生成
#include <stdio.h>
int main()
{
printf("hello world!\n");
return 0;
}
3、o目标文件生成
#include <stdio.h>
void hello()
{
printf("hello!\n");
}
4、a静态库生成
(1)创建静态库
由.o文件创建静态库,静态库文件名的命名规范是以lib为前缀,紧接着跟静态库名,扩展名为.a。
例如:我们将创建的静态库名为hello,则静态库文件名就是libhello.a。
(2)调用静态库
#include <stdio.h>
void hello();
int main()
{
hello();
return 0;
}
gcc main.cpp libhello.a -o main.out
5、so共享库生成
(1)创建so
由.o文件创建动态库文件,动态库文件名命名规范和静态库文件名命名规范类似,也是在动态库名增加前缀lib,但其
例如:我们将创建的动态库名为hello,则动态库文件名就是libhello.so。
gcc -shared -fPIC -o libhello.so hello.o
这是因为在生成hello.o时,没有使用-fPIC选项,所以我们使用
(2)调用so
gcc -o main.out main.cpp -L. -lhello
我们发现报错了,原来是找不到动态库文件libhello.so,程序在运行时,会在/usr/lib和/lib等目录中查找需要的动态库文件。
若找到,则载入动态库,否则将提示类似上述错误而终止程序运行。
我们将文件libhello.so移动到目录/usr/lib中,再运行main.out,已经可以正常调用so了。
===================================================
===================================================
他来了,他来了,他带着礼物走来了
版权声明:本文为zyhse原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。