编译格式
编译器 -fPIC XXX.c -c
编译器 -shared XXX.o -o libxxx.so
或合起来 编译器 -fPIC -shared XXX.c -o libxxx.so
注意用的时候
-L 是库的路径 -l跟库,如果是libxxx.so 就是 -lxxx 如果库名是libxxx.so.x.x 就不可以这样调用了
调用的时候可以直接在后面跟路径,如 ./libxxx.so.x.x
EX:
gcc test.c -o test ./libtest.so.1
gcc test.c -o test -L./ -ltest
尽量直接在后面跟路径,这样出错概率较小。不同编译器编译出来的库可能不能调用,我用arm-linux-gcc编译出来的库,用arm-linux-g++调用就会报找不到库(我加了extern“C”)
DLL的调用。
静态调用:(VS环境下)
将dll与lib文件与头文件都拷贝到当前目录下,在项目属性中,选择连接器,附加库目录中添加库的路径
在主程序前加入代码
#pragma once
#pragma comment(lib,"xxx.lib")
#include"xxx.h"
动态调用:只需要dll文件
HINSTANCE

本文介绍了在Linux和Windows环境下动态库的编译与使用。在Linux中,使用-fPIC选项和-shared来创建动态库,调用时通过-L指定库路径,-l指定库名。而在Windows下,动态库的调用分为静态和动态方式,静态调用需拷贝dll、lib和头文件,动态调用只需dll文件。不同编译器编译的库可能存在调用问题,例如arm-linux-gcc与arm-linux-g++。
最低0.47元/天 解锁文章
1317

被折叠的 条评论
为什么被折叠?



