如何使用PIC编译gnu libstdc ++.a?

bob*_*ert 5 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 __cxxabiv1::__forced_unwind' can not be used when making a shared object; recompile with -fPIC
lib64/libstdc++.a: could not read symbols: Bad value
Run Code Online (Sandbox Code Playgroud)

我尝试用CFLAGS =" - fPIC"和CXXFLAGS =" - fPIC"重新编译GCC,但这似乎没有做任何事情.

救命?

oak*_*kad 6

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