我想仅编译glibc附带的许多库中的一个。仅编译glibc的一部分
即我所需要的是librt库(librt.a)的静态版本。有没有办法告诉configure/make来做到这一点?
现在,我已经设置了一个进程,在运行configure时设置特定的CFLAGS,然后编译整个glibc,并在编译后简单地提取librt.a - 但肯定看起来像99%的浪费和1%的收益。
编辑:
建议的命令make rt/librt.a
产生
make -r PARALLELMFLAGS="" -C .. objdir=`pwd` rt/librt.a
make[1]: Entering directory '/data/soft/glibc-2.24'
make[1]: *** No rule to make target 'rt/librt.a'. Stop.
make[1]: Leaving directory '/data/soft/glibc-2.24'
make: *** [Makefile:9: rt/librt.a] Error 2
,当我看着整个化妆运行的输出,librt建像
make subdir=rt -C rt ..=../ subdir_lib
不幸的是,这个命令也不会产生好结果:
$ make subdir=rt -C rt ..=../ subdir_lib
make: Entering directory '/data/soft/glibc-2.24/build-tree/rt'
make: *** No rule to make target 'subdir_lib'. Stop.
make: Leaving directory '/data/soft/glibc-2.24/build-tree/rt'
有趣的是,当 - 一个完整的化妆运行后 - 我尝试使用推荐的命令,我得到
$ make -j 4 rt/librt.a
make: 'rt/librt.a' is up to date.
需要配置在linux下--prefix,但即使我给的是, 编译与此错误'结束使:***没有规则,使目标 “/ data/glibc-2.24/build/csu/stamp.o',由 '/data/glibc-2.24/build/libc.a'需要。停下来。“如果我然后进入csu dir并在那里发布一个make,那就贯穿始终。如果 - 之后 - 我返回到rt目录,并继续make,我得到: '../sysdeps/unix/sysv/linux/x86_64/cancellation.S:69:错误:无效的操作数(* UND *和* UND *部分)为“|”' – Perlator