所以
要生含改成so
需要用gcc
和生成可执行文件类似,只是增加逗启一些编译选项
命令谈指判如下
gcc
SOURCE_FILES
-fPIC
-shared
-o
TARGET
SOURCE_FILES可以是.
c文件
,也可以是经过-c编译出来的.o文件
TARGET为so文件。
就跟用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
可以的一般是把多个.c文件袜凯 先分别编译成.o文件
然后再把.o文件打包成.so
也可以直接编译打包,一步完成。
命令如下
gcc SOURCE_FILES -fPIC -shared -o TARGET
SOURCE_FILES可以是.c文件,也可以是经过-c编译出来禅贺的贺好派.o文件
TARGET为so文件。
比如
gcc a.c b.c c.c d.c -fPIC -shared -o libabcd.so
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)