仅编译部分glibc

时间:2017-01-02 11:52:41

标签: glibc librt

我只想编译glibc附带的众多库中的一个。

即使我需要的是librt库的静态版本(librt.a)。有没有办法告诉configure / make这样做?

现在,我有一个进程设置,我在运行configure时设置特定的CFLAGS然后编译整个glibc并在编译后简单地提取librt.a - 但这看起来肯定是99%的浪费和1%的收益。 / p>

修改

建议的命令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 产生

make  subdir=rt -C rt ..=../ subdir_lib

当我查看完整make运行的输出时,librt就像

一样构建
$ 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.

有趣的是,在完成make运行之后 - 我尝试了建议的命令,我得到了

describe TasksCsvsController do
  describe '#index' do
    let(:params) { {'clients' => {'id' => ['1', '2', '3']}} }

    before do
      ActiveJob::Base.queue_adapter = :test
    end

    it 'enqueues tasks csv job' do
      get :create, params: params
      expect(ProjectsCsvJob).to have_been_enqueued.with(params['clients'])
    end
  end
end

2 个答案:

答案 0 :(得分:1)

这应该这样做:

ReachabilityCallback

答案 1 :(得分:1)

glibc构建以objdir变量为中心。将它导出到您运行configure的路径,然后您可以在surce子目录中使用make

例如:

cd .../glibc/
mkdir build
cd build
../configure --prefix=/usr
export objdir=$PWD
cd ../rt
make -j4