【问题标题】:Verify C++11 library compliance for clang (mavericks)验证 clang 的 C++11 库合规性(小牛)
【发布时间】:2014-07-10 17:17:05
【问题描述】:

如何准确验证 clang++ 链接到哪个库,尤其是标准库?一旦我这样做了,我如何验证这是正确的 C++11 库而不是早期版本(即是否有可执行代码对其进行测试)。

clang -v 仅给出库搜索路径,而不是链接到的实际库。我担心正确的库被遮蔽,因为我的行为非常奇怪(例如,一旦 C++11 样式初始化向量,如 vector v {5, 6} ,在运行时失败,默默地,只是初始化v 为零,但我永远无法重现这个)。

有人在另一个线程上说这种事情可能是由升级而不是全新安装 Mavericks 引起的,但我想先检查库。

请注意,大多数有关 Apple 标准库的 StackOverflow 响应都与早期版本的操作系统有关;苹果显然彻底改变了小牛队的一切。

【问题讨论】:

    标签: xcode c++11 osx-mavericks ld clang++


    【解决方案1】:

    你可以试试ldd。 例如。, ldd /path/to/clang

     linux-vdso.so.1 =>  (0x00007fff2f1ff000)
            librt.so.1 => /lib/librt.so.1 (0x00007fea7eec8000)
            libdl.so.2 => /lib/libdl.so.2 (0x00007fea7ecc3000)
            libncurses.so.5 => /lib/libncurses.so.5 (0x00007fea7ea80000)
            libpthread.so.0 => /lib/libpthread.so.0 (0x00007fea7e863000)
            libz.so.1 => /lib/libz.so.1 (0x00007fea7e64b000)
            libstdc++.so.6 => /pkg/qct/software/gnu64/gcc/4.8.2/lib64/libstdc++.so.6 (0x00007fea7e33c000)
            libm.so.6 => /lib/libm.so.6 (0x00007fea7e0b9000)
            libgcc_s.so.1 => /pkg/qct/software/gnu64/gcc/4.8.2/lib64/libgcc_s.so.1 (0x00007fea7dea1000)
            libc.so.6 => /lib/libc.so.6 (0x00007fea7db1b000)
            /lib64/ld-linux-x86-64.so.2 (0x00007fea7f0f5000)
    

    【讨论】:

    • 这个很有帮助,原来mac上没有ldd,但是搜索显示“otool -L”解决了这个问题。
    【解决方案2】:

    我发现用于查找链接库的 Mac 命令是“otool -L”。至于验证特定库是否符合 C++11,我不知道。

    【讨论】:

      猜你喜欢
      • 2011-05-15
      • 1970-01-01
      • 2019-02-18
      • 2019-11-15
      • 2012-01-08
      • 2010-10-28
      • 1970-01-01
      • 2011-12-20
      • 1970-01-01
      相关资源
      最近更新 更多