需求
在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文件。
1616

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



