标签:void gcc main 出现 ati 静态 编译 stat oid
int main() { test(); }
man.c如上:
#include <stdio.h> void test() { printf("test\n"); }
test.c 如上:
将test.c与main.c转换为目标文件test.o,main.o:
gcc -c main.c test.c
将两者链接成可执行文件:
gcc test.o main.o -o liu
将test.o打包为动态库文件libtest.so:
gcc -fPIC -c test.c -o test.o
gcc --share test.o -o libtest.so
or:
gcc -fPIC -shared test.c -o libtest.so
将test.o打包为静态库文件libtest.a:
ar r libtest.a test.o
不能写成:
ar r libtest.a test.c
否则会出现错误。
编译链接动态库(gcc是默认链接动态库):
gcc main.c -L. -ltest -o main
-L.表示动态链接库在当前路径下,若是在其他路径下应该执行以下命令:
gcc main.c -L /xx/yy -ltest -o main
编译链接静态库:
gcc main.c -L. libtest.a -o main
或者:
gcc main.c -L. -static -ltest -o main
可执行文件:
./main
注意需要将动态库文件放到系统目录中。
标签:void gcc main 出现 ati 静态 编译 stat oid
原文地址:https://www.cnblogs.com/liuzhenbo/p/11031648.html