在glibc中添加自定义so

需求

在glibc中添加一个mytest so文件

1. 创建mytest文件夹

~/projects/tstglib/glibc-2.25$ mkdir  mytest

2. 修改Makefile

~/projects/tstglib/glibc-2.25$ vi Makeconfig 

2.1 确保生成libmytest.so

# List of non-library modules that we build.
built-modules = iconvprogs iconvdata ldconfig lddlibc4 libmemusage \
                libSegFault libpcprofile librpcsvc locale-programs \
                memusagestat nonlib nscd extramodules libnldbl libsupport libmytest

2.2 让mytest参与编译

all-subdirs = csu assert ctype locale intl catgets math setjmp signal       \
              stdlib stdio-common libio malloc string wcsmbs time dirent    \
              grp pwd posix io termios resource misc socket sysvipc gmon    \
              gnulib iconv iconvdata wctype manual shadow gshadow po argp   \
              crypt localedata timezone rt conform debug mathvec support    \
              $(add-on-subdirs) dlfcn elf mytest

3. 编写mytest源码

~/projects/tstglib/glibc-2.25/mytest$ vi myadd.c

int myadd(int a, int b)
{
        return a+b;
}

~/projects/tstglib/glibc-2.25/mytest$ vi Makefile

subdir  := mytest

include ../Makeconfig

extra-libs      := libmytest
extra-libs-others := $(extra-libs)

libmytest-routines:= myadd  #myadd.c
include ../Rules

4. 编译glibc

~/projects/tstglib$ mkdir build

~/projects/tstglib$ cd build

~/projects/tstglib/build$  ../glibc-2.25/configure --prefix=/home/zhangsan/projects/tstglib/install --host=arm-linux-gnueabi

~/projects/tstglib/build$  make -j32

在build目录下生成的libc-modules.h文件中:
......
#define MODULE_nscd 12
#define MODULE_extramodules 13
#define MODULE_libnldbl 14
#define MODULE_libsupport 15
#define MODULE_libmytest 16
......

~/projects/tstglib/build$ make install

在/home/zhangsan/projects/tstglib/install/lib目录下生成了一个libmytest.so文件和一个libmytest.a文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值