现有源文件:
//Hello.h
#include <stdio.h>
void printhello();
//Hello.c
#include <stdio.h>
void printhello()
{
puts("Hello World1111!");
}
//Test.c
#include "Hello.h"
int main()
{
printhello();
return 0;
}
Linux下使用gcc生成静态库并使用
//生成.o文件
gcc -o Hello.o -c Hello.c
//打包
ar -rc libHello.a Hello.o
//依赖编译生成可执行文件
gcc -o main test.c -L. -lHello
./main
Hello World1111!
Linux下使用gcc生成动态库并使用
//生成动态库
gcc -o libHello.so -fPIC -shared Hello.c
//编译依赖
gcc -o main test.c -L. -lHello
//将生成的动态库移至lib目录
mv libHello.so /usr/lib
//刷新缓存
ldconfig
//执行该文件
./main
Hello World1111!
AIX下使用cc生成静态库并使用
cc -o Hello.o -c Hello.c
ar crs libHello.a Hello.o
cc -o main -L. -lHello test.c
AIX使用cc生成动态库并使用
cc -qmkshrobj -o libHello.so hello.c
cc -o main -L. -lHello -brtl test.c
AIX指定位数编译
cc -q64/ar -X64
查询文件符号
ar -t libHello.a
ar -t -X64 libHello.a
nm -D libHello.so
本文详细介绍了在Linux和AIX环境下,如何使用gcc和cc编译器生成静态库和动态库,并提供了具体步骤及命令。从创建.o文件到最终生成可执行文件,涵盖了依赖编译、库文件管理和符号查询等关键环节。
1613

被折叠的 条评论
为什么被折叠?



