【问题标题】:nm devtoolset's .so files gives File format not recognizednm devtoolset 的 .so 文件给出文件格式无法识别
【发布时间】:2019-03-13 06:49:47
【问题描述】:

我只是好奇为什么nm 抱怨:

文件格式无法识别

如果我这样做:

$ nm /opt/rh/devtoolset-8/root/usr/lib/gcc/x86_64-redhat-linux/8/libstdc++.so
nm: /opt/rh/devtoolset-8/root/usr/lib/gcc/x86_64-redhat-linux/8/libstdc++.so: File format not recognized

但是,同样的命令可以成功地对股票一号/lib64/libstdc++.so.6执行

【问题讨论】:

    标签: gcc centos7 devtoolset


    【解决方案1】:

    它不是共享库。它是在编译时而不是运行时使用的 ld 脚本
    cat /opt/rh/devtoolset-8/root/usr/lib/gcc/x86_64-redhat-linux/8/libstdc++.so

    /* GNU ld 脚本
    使用共享库,但有些函数是 仅在
    静态库中,因此请尝试次要。 */
    OUTPUT_FORMAT(elf64-x86-64)
    输入 (/usr/lib64/libstdc++.so.6 -lstdc++_nonshared)

    OUTPUT_FORMATINPUT 解释:见https://sourceware.org/binutils/docs-2.32/ld/LD-Index.html#LD-Index

    【讨论】:

    • 谢谢!一个不相关的问题(希望你不介意)——libstdc++_noshared.a 中有什么?补充 /usr/lib64/libstdc++.so.6 以提供 GCC 8 涵盖的新功能?
    • @HCSF。它不介意。我想你会在这里找到答案:stackoverflow.com/a/15602073/7462275.
    • 从未想过答案会来自那个帖子。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2013-06-12
    • 1970-01-01
    • 2018-02-15
    • 1970-01-01
    • 2021-01-13
    • 1970-01-01
    • 1970-01-01
    • 2011-05-25
    相关资源
    最近更新 更多