【问题标题】:Using Binutils Build on Solaris 10 Fails在 Solaris 10 上使用 Binutils 构建失败
【发布时间】:2012-08-21 18:11:05
【问题描述】:

我已在 Solaris 10 上成功构建并安装了最新的 binutils-2.22。

但是当我尝试使用已安装的程序(例如 ldor)时,出现运行时错误:

ld.so.1: ld: fatal: relocation error: file /home/pernord/alt/bin/ld: symbol __clz_tab: referenced symbol not found

我已经广泛搜索错误,但所有点击似乎都与我的问题无关。

从我读到的__clz_tab 似乎与“libgcc”有关。

至少 libgcc 包含符号 clz

strings /lib/*/libgcc* | grep clz

有什么想法吗?

【问题讨论】:

    标签: gcc runtime-error ld binutils solaris-10


    【解决方案1】:

    __clz_tab 是 libgcc 中的一个表,用于实现 CLZ(“计数前导零”)函数。

    您的 binutils 可执行文件是否依赖于 libgcc_s.soldd /home/pernord/alt/bin/ld 显示什么?

    如果libgcc_s.so 不在您的库搜索路径中,您可能需要使用crle(1) 来添加它。

    【讨论】:

    • 如果我想为整套 GNU 工具编译最新版本,通常是 binutils 和 gcc 及其所有的 deps,最好通过将 binutils 链接到 gcc 来一次编译它树并让 binutils 使用最新版本的 libgcc?
    • 将所有内容构建在一起的“组合树”构建仅适用于来自 cvs(用于 binutils)和 svn(用于 gcc)的 非常 最新开发源。如果您想构建发布版本(例如 binutils 2.22 和 GCC 4.7.1)而不是开发快照,那么最好的方法是首先构建和安装 binutils,然后将 gcc 安装到相同的位置(即使用相同的 --prefix 选项。)如果 binutils 工具已经存在于其prefix 中,GCC 将自动获取它们并使用它们。
    猜你喜欢
    • 1970-01-01
    • 2022-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多