C++ 如何编译gnu libstdc++;。一张有照片的照片?

C++ 如何编译gnu libstdc++;。一张有照片的照片?,c++,gcc,ld,C++,Gcc,Ld,我正在尝试为没有足够新的libstdc++来运行它的系统编译一个共享库,这意味着我需要将libstdc++静态链接到库中。我试图直接链接到libstdc++.a(-Wl,-Bstatic-L/path/to/lib64-lstdc++),但我收到一个错误,似乎表明我的libstdc++.a没有与PIC链接: /usr/bin/ld: lib64/libstdc++.a(compatibility.o): relocation R_X86_64_32 against `typeinfo for _

我正在尝试为没有足够新的libstdc++来运行它的系统编译一个共享库,这意味着我需要将libstdc++静态链接到库中。我试图直接链接到libstdc++.a(
-Wl,-Bstatic-L/path/to/lib64-lstdc++
),但我收到一个错误,似乎表明我的libstdc++.a没有与PIC链接:

/usr/bin/ld: lib64/libstdc++.a(compatibility.o): relocation R_X86_64_32 against `typeinfo for __cxxabiv1::__forced_unwind' can not be used when making a shared object; recompile with -fPIC
lib64/libstdc++.a: could not read symbols: Bad value
我试着用CFLAGS=“-fPIC”和CXXFLAGS=“-fPIC”重新编译GCC,但这似乎没有起到任何作用


帮助?

我们的想法是将
--with pic
选项传递到
配置
。GCC构建是一个具有多个阶段的非常复杂的beast,因此简单地传递CFLAGS变量可能无法按预期工作。

阅读。在构建
GCC
时,我使用了这个标志
--启用主机共享
,如描述中所述:

指定主机代码应内置到独立于位置的位置 机器代码(带-fPIC),允许在共享 库,但生成的编译器稍慢


有记录吗?它没有打开,但是如果您切换到/libstdc++-v3子目录并运行
configure--help
您将看到它。-stdc++libs的pic问题有一段相当动荡的历史。