如何确切地验证clang ++链接到哪个库,特别是标准库?一旦我这样做,我怎么能验证这是正确的C ++ 11库而不是早期版本(即是否有可测试的可执行代码)。
clang -v仅提供库搜索路径,而不是链接到的实际库。我担心正确的库正在被遮蔽,因为我得到非常奇怪的行为(例如,一旦C ++ 11样式初始化为向量,如向量v {5,6},在运行时失败,默默地,只是初始化v到零,但我从来没有能够重现这个。)
有人在另一个帖子上说过,升级而不是干净安装Mavericks会导致这种事情,但我想先检查一下这些库。
请注意,Apple上有关std库的大多数StackOverflow响应都与早期版本的操作系统有关;苹果显然完全改变了小牛队的事情。
答案 0 :(得分: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)
答案 1 :(得分:0)
我发现用于查找链接库的Mac命令是" otool -L"。至于验证特定库是否符合C ++ 11,我不知道。