❶ 用cc怎样把.c文件编译成.so文件
比如有一个test.c文件,我想打包成动态库test.so,
直接gcc test.c -o test.o -fPIC
gcc -o test.so test.o -shared
使用的时候发布.so和头文件即可。
链接的时候要记得丢在默认目录或者将其所在目录声明到环境变量,不然有时候会提示找不到这个库文件。
❷ 怎样把.c文件编译成.so文件
.so是linux用的
所以 要生成so 需要用gcc
和生成可执行文件类似,只是增加一些编译选项
命令如下
gcc SOURCE_FILES -fPIC -shared -o TARGET
SOURCE_FILES可以是.c文件,也可以是经过-c编译出来的.o文件
TARGET为so文件。
❸ linux中把.c的文件编译成.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
❹ vc++怎么编译生成.so的文件
*.so是linux下的动态库,windows下在cygwin环境下可以用g++编一个,原理上可以安装cygwin和g++编译器,用vc自己配置一个g++的makefile工程搞,原理上可以,实际上没试过,你可以去试试。
❺ 怎样把.c文件编译成.so文件
比如有一个test.c文件,我想打包成动态库test.so,
直接gcc
test.c
-o
test.o
-fpic
gcc
-o
test.so
test.o
-shared
使用的时候发布.so和头文件即可。
链接的时候要记得丢在默认目录或者将其所在目录声明到环境变量,不然有时候会提示找不到这个库文件。
❻ linux下c语言编译so问题
不需要在自己的.so中调用别人的.so,只需要编译自己的,编译.so时,系统不会检查未定义的函数。
直接在编译自己的应用程序时链接这两个.so就可以了!
gcc
-o
exec_file
mysrc.c
-L./
-lXXX
-L/usr/lib
-lmysqlclient
❼ 在MACOX上的ANDROIDSTUDIO如何编译OPENSSL原生的C库成动态的.SO库
目前暂不支持开发工具编译C、c++代码生成so文件,应该后续版本会有的。
.so 为共享库,是shared object,用于动态连接的,和dll差不多,可以这样调用so文件:
调用 System.out.println(System.getProperty("java.library.path"));
得到/usr/java/jdk1.5.0_13/jre/lib/i386,将SO文件放在该目录下
运行java程序,输出了由C语言函数计算出的结果
❽ C/C++源文件直接交叉编译生成.so文件供安卓应用程序调用,可以吗
Jni调用就行了,是要按规则写接口api,如果接口很多,也没法,那是你的业务问题,要重新设计业务逻辑。我们之前用的c++单独交叉编译一个进程,和安卓界面用tcp通信,如果接口多也以为着协议多,一样的。