我正在运行OpenSUSE 13.2,出于各种原因,我正在从事的一个项目需要OpenMPI与libc++而不是libstd++进行链接。
我已经尝试过设置以下环境变量:
CXX <path>/llvm-3.8/bin/clang++
CC <path>/llvm-3.8/bin/clang
OMPI_CC <path>/llvm-3.8/bin/clang
OMPI_CXX <path>/llvm-3.8/bin/clang++但是,虽然这确实使用clang进行编译,但它仍然链接到libstdc++,这是通过在openmpi文件夹中的各种可执行文件上运行的以下命令确认的:
openmpi-1.10.2/bin > ldd vtc++
linux-vdso.so.1 (0x00007ffc9f0ed000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007ffb1f2cd000)
libm.so.6 => /lib64/libm.so.6 (0x00007ffb1efcb000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007ffb1edb4000)
libc.so.6 => /lib64/libc.so.6 (0x00007ffb1ea0d000)
/lib64/ld-linux-x86-64.so.2 (0x00007ffb1f611000)和:
openmpi-1.10.2/bin > objdump -x vtc++ | grep NEEDED
NEEDED libstdc++.so.6
NEEDED libm.so.6
NEEDED libgcc_s.so.1
NEEDED libc.so.6任何建议都非常感谢。
发布于 2016-03-03 16:07:38
感谢“祖兰”和“玛特”的帮助。
我的问题是,虽然我已经设置了正确的编译器,但我没有传递它的-stdlib=c++标志。要使用OpenMPI构建(特别是使用configure ),必须设置CFLAGS和CXXFLAGS环境变量以包含-stdlib=libc++。我是通过prepend-path的一个模块文件来完成这个任务的。
https://stackoverflow.com/questions/35772544
复制相似问题