导航:首页 > 源码编译 > c将so库编译在一起

c将so库编译在一起

发布时间:2023-11-30 07:27:25

① 如何用gcc编译生成动态链接库*.so文件

生成动态链接库的命令行为:
gcc -fPIC -shared -o libstr.so
当将main.c和动态链接库进行连接生成可执行文件 的命令如下:
gcc main.c -L./ -lstr -o main或者gcc -o main main.c -L./ -lstr
测试是否动态链接,如果列出libstr.so, 那么应该是连接正常了ldd main注:1)-L.:表示连接的库在当前的目录中。

② C/C++源文件直接交叉编译生成.so文件供安卓应用程序调用,可以吗

Jni调用就行了,是要按规则写接口api,如果接口很多,也没法,那是你的业务问题,要重新设计业务逻辑。我们之前用的c++单独交叉编译一个进程,和安卓界面用tcp通信,如果接口多也以为着协议多,一样的。

③ 请问我有一个.so文件,如何在linux编程使用呢

-lxx

xx是你的.so文件名

其实使用方法和你使用数学库函数是一样的,源代码中添加

#include <math.h>,编译的时候,加上-lm参数。

注:linux下的.so文件为共享库,相当于windows下的dll文件。

(3)c将so库编译在一起扩展阅读:

linux下编写调用so文件实例

.so是Linux(Unix)下的动态链接库. 和.dll类似.

比如:

文件有: a.c, b.c, c.c

gcc -c a.c

gcc -c b.c

gcc -c c.c

gcc -shared libXXX.so a.o b.o c.o

要使用的话也很简单. 比如编译d.c, 使用到libXXX.so中的函数, libXXX.so地址是MYPATH
gcc d.c -o d -LMYPATH -lXXX

注意不是-llibXXX

test.c文件和一个test.h,这两个文件要生成libsotest.so文件。然后我还有一个testso.c文件,在这个文件里面调用libsotest.so中的函数。

编写的过程中,首先是编译so文件,我没有编写makefile文件,而是参考的2里面说的直接写的gcc命令。

因为so文件里面没有main函数,所以是不可执行的,所以编译的时候要加上-c,只生成目标文件。

④ linux下c语言编译so问题

不需要在自己的.so中调用别人的.so,只需要编译自己的,编译.so时,系统不会检查未定义的函数。
直接在编译自己的应用程序时链接这两个.so就可以了!
gcc
-o
exec_file
mysrc.c
-L./
-lXXX
-L/usr/lib
-lmysqlclient

⑤ linux下如何用c++编译so文件,c语言又怎样调用这个so文件

C++编译so文件与C编译so一样都是加参数 -shared

C语言调用C++的so
首先C要调用的C++的函数必须是extern "C"声明的。
其次编译C程序时需要增加链接libstdc++.so(可能名字不打对自己查查)

阅读全文

与c将so库编译在一起相关的资料

热点内容
山科女生程序员 浏览:745
mybatis3源码分析 浏览:455
华为交换机常用配置命令 浏览:375
程序员怎么去银行上班 浏览:589
广州程序员薪资 浏览:888
win7命令提示符输入 浏览:592
关于程序员的故事 浏览:482
吃鸡服务器是什么样的 浏览:19
为什么pspice没有单片机 浏览:5
高数第六版下册答案pdf 浏览:904
sm3算法实现java 浏览:675
只有程序员才懂的笑话 浏览:267
php开发app接口源码 浏览:12
加密狗宝宝 浏览:237
单片机抢答器的原理 浏览:928
百利达体脂仪可以用什么app连接 浏览:227
服务器2016自动备份怎么取消 浏览:844
dos攻击命令大全 浏览:842
梦世界服务器怎么扩大领地 浏览:972
解压breathe 浏览:437