Linux动态链接库
动态链接库在Linux平台下就是Linux标准对象Standard Ojbect,对应的文档扩展名为.so,不同于Win32平台下的DLL,Linux标准对象文档含有一个函数,无需声明export导出符号,只需要编译器配置即可。
保存为myso.c文档,编译:$ gcc -fPIC -shared -o libmyso.so myso.c
按照Linux标准对象的命名惯例,应该在库名称之前加上"lib"前缀,执行生成一个libmyso.so文档。
编译开关-fPIC代表函数符号能够重定向。
-shared代表编译结果是个标准对象。
Linux标准对象中的任何函数都是直接导出的,都能够被调用程式所访问。
编译生成testso可执行文档。如上编译条件的最后一条需要是所调用的标准对象文档名,文档名"./libmyso.so"使用相对路径。
测试输出结果如下:
对于Linux还是比较陌生,这两天看QT文档看的很晕,力争在过年回去前完成中间件Linux下的so移植。
Code
保存为myso.c文档,编译:$ gcc -fPIC -shared -o libmyso.so myso.c
按照Linux标准对象的命名惯例,应该在库名称之前加上"lib"前缀,执行生成一个libmyso.so文档。
编译开关-fPIC代表函数符号能够重定向。
-shared代表编译结果是个标准对象。
Linux标准对象中的任何函数都是直接导出的,都能够被调用程式所访问。
Code
保存为invoke.c,gcc开关编译:$ gcc -o testso invoke.c ./libmyso.so 编译生成testso可执行文档。如上编译条件的最后一条需要是所调用的标准对象文档名,文档名"./libmyso.so"使用相对路径。
测试输出结果如下:
Code
对于Linux还是比较陌生,这两天看QT文档看的很晕,力争在过年回去前完成中间件Linux下的so移植。