linux生成so
1. linux下如何将多个.c文件生成.so文件
头文件只是在开发编译的时候才会用到,生成动态库的时候记得在gcc编译的时加上-fPIC参数
2. 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
3. linux 怎么编译.so文件
.so是linux用的 所以 要生成so 需要用gcc 和生成可执行文件类似,只是增加一些编译选项 命令如下 gcc SOURCE_FILES -fPIC -shared -o TARGET SOURCE_FILES可以是.c文件,也可以是经过-c编译出来的.o文件 TARGET为so文件。
4. Linux .so库的使用
新建一个sort.c文件,写一个最简单的排序
使用 gcc -o libsort.so -fPIC -shared sort.c 产生libsort.so库。
.so库有两种调用方法:
新建main.c文件:
使用命令 gcc -o main main.c -lsort -L. 编译。
新建main2.c文件:
使用命令 gcc -o main2 main2.c -ldl 编译。动态加载.so库的话需要-ldl。
运行./main2后输出递增序列,调用成功。
5. Linux下如何将多个.c文件生成.so文件
根据相应的头文件、和链接使用的库文件,编译链接后,即是可以使用该.so文件了
~~~~~~~
6. Linux c++开发.so文件的使用
假设在linux上用gcc编译程序,需要用下列编译选项生成.so文件:
gcc -fPIC -shared
.so 文件安装一般是在/usr/lib或者/usr/local/lib下,安装后不需要绝对路径即可使用。当然你也可以安装到工程文件夹下面,不过很少有这么做的。使用时只需要dlopen()函数打开这个库,用dlsym()函数将动态库的函数体加载进来;同样已加载的动态函数库可以用dlclose()关闭。
详细使用方法网络搜dlopen 即可。