我想僅編譯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