linux动态链接-创新互联
1, 编译,使用-shared和-fpic 生成动态链接库
库源码:test.c
#include
#include
#include
static void printline(int len)
{
int i;
for(i = 0;i
头文件:test.h
#ifndef __TEST_H__
#define __TEST_H__
void print(char * s);
#endif
编译库文件:
gcc test.c -shared -fpic -o libtest.so
2.编译测试代码
测试代码:main.c
#include "test.h"
int main()
{
char teststr[] = "hello world";
print(teststr);
return 0;
}
编译测试代码
gcc main.c -L./ -ltest -o main
3.运行
当运行时,发现找不到库文件
./main: error while loading shared libraries: libtest.so: cannot open shared object file: No such file or directory
这个是linux库文件搜索路径的问题,有两个解决方式
- 在/etc/ld.so.conf.d/下编写配置文件,指定库路径,然后使用ldconfig去刷新缓存
- 在执行前设置环境变量 LD_LIBRARY_PATH,指定当前的路径,再去执行时,则现在本地去搜索
root@GFD:~/workspace/so_test# export LD_LIBRARY_PATH=./
root@GFD:~/workspace/so_test# ./main
===========
hello world
===========
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享文章:linux动态链接-创新互联
转载来源:http://pwwzsj.com/article/cccsdp.html