linux环境下编译so库和编译可执行文件

linux环境下编译so库和编译可执行文件,第1张

gcc -fPIC -shared caculate.c -o libcaculate.so

-fPIC 压制警告

-shared 动态库

-o 生成目标的文件名

caculate.c

gcc -rdynamic -o main main.c

-rdynamic 生成可执行文件

-o 目标文件名

main是linux环境下的一个可执行文件。

main.c

gcc -c main.c -o main.o

gcc -c minus.c -o minus.o

gcc -c mulit.c -o mulit.o

gcc -c plus.c -o plus.o

gcc main.o minus.o mulit.o plus.o -o myapp

就跟用VS编译dll或者lib文件差不多,把代码编译完成以后,命名为相应的后缀就好了。

例如:

gcc

-c

-fPIC

libst.c

生成

libst.o

然后

gcc

-shared

-fPIC

-o

libst.so

libst.o

生成

libst.so

动态链接库

把libst.so拷贝到系统默认库目录下,比如

/lib,

/usr/lib

假定有

test.c

要引用这个库

gcc

-lst

-o

test

test.c

然后就可以了

假如不能把libst.so拷贝到默认库目录下,比方说放在了

/home/aaa/lib

那么就用这样的语句来编译test.c

gcc

-L/home/aaa/lib

-lst

-Wl,-rpath=/home/aaa/lib

-o

test

test.c


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7122877.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-01
下一篇2023-04-01

发表评论

登录后才能评论

评论列表(0条)

    保存