【问题标题】:Questions about "gcc: unrecognized option `-rdynamic'"关于“gcc:无法识别的选项 `-rdynamic'”的问题
【发布时间】:2014-11-12 10:23:38
【问题描述】:

我在Solaris 10上使用gcc构建make程序,得到如下信息:

gcc: unrecognized option `-rdynamic'

检查gcc 文档中的rdynamic 后,我得到以下解释:

-rdynamic
Pass the flag -export-dynamic to the ELF linker, on targets that support it. This instructs the linker to add all symbols, not only used ones, to the dynamic symbol table. This option is needed for some uses of dlopen or to allow obtaining backtraces from within a program. 

我的问题是:

(1) 虽然gcc 打印“gcc: unrecognized option -rdynamic”,但构建仍然成功。这是gcc 的默认行为吗?

(2) 我在Makefile中将“-rdynamic”替换为“-export-dynamic”,构建成功。这种替代有副作用吗?

附:我的gcc信息:

bash-3.00# gcc -v
Reading specs from /usr/local/lib/gcc/i386-pc-solaris2.10/3.4.6/specs
Configured with: ../configure --with-as=/usr/ccs/bin/as --with-ld=/usr/ccs/bin/ld --enable-shared --enable-languages=c,c++,f77
Thread model: posix
gcc version 3.4.6 

【问题讨论】:

    标签: c gcc solaris


    【解决方案1】:

    您使用的是过时版本的 gcc,但您参考了最新的文档。 gcc-3.4.6 没有这样的链接器选项,请参阅https://gcc.gnu.org/onlinedocs/gcc-3.4.6/gcc/Link-Options.html。

    在链接时尝试使用-Wl,--export-dynamic 选项。


    我在Makefile中将-rdynamic替换为-export-dynamic,构建成功。这种替代有什么副作用吗?

    这个选项没有记录,它可能什么都不做,你需要检查strace输出它传递给链接器的命令行选项。

    【讨论】:

      猜你喜欢
      • 2015-06-14
      • 1970-01-01
      • 2012-09-17
      • 1970-01-01
      • 2021-07-28
      • 1970-01-01
      • 2020-10-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多