无法识别的命令行选项 '-stdlib=libc++' 与 MacPorts gcc48
Unrecognized Command Line Option '-stdlib=libc++' with MacPorts gcc48
上下文
我正在尝试编译包"root_numpy",它是科学分析软件"root"和python包"numpy"之间的链接。它被用作根包装器"rootpy"的一部分。当执行以下行时,我得到一个g++错误:
g++ -bundle -undefined dynamic_lookup -g -arch x86_64 -headerpad_max_install_names
-arch x86_64 build/temp.macosx-10.6-x86_64-2.7/root_numpy/src/_librootnumpy.o
-o build/lib.macosx-10.6-x86_64-2.7/root_numpy/_librootnumpy.so
-L/Users/bwells/bin/root/lib -lCore -lCint -lRIO -lNet -lHist -lGraf -lGraf3d
-lGpad -lTree -lRint -lPostscript -lMatrix -lPhysics -lMathCore -lThread
-lpthread -Wl,-rpath,/Users/bwells/bin/root/lib -stdlib=libc++ -lm -ldl
-lTreePlayer
g++: error: unrecognized command line option '-stdlib=libc++'
当我编译一个带有以下标志的"helloworld"程序时,也会出现同样的问题:
dhcp-130-112:helloworld bwells$ g++ -stdlib=libc++ helloworld.cpp
g++: error: unrecognized command line option '-stdlib=libc++'
没有这个标志,它编译得很好:
dhcp-130-112:helloworld bwells$ g++ helloworld.cpp
dhcp-130-112:helloworld bwells$ ls
a.out helloworld.cpp
我的编译器版本是:
dhcp-130-112:helloworld bwells$ g++ --version
g++ (MacPorts gcc48 4.8.2_2) 4.8.2
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
AKA是运行CCD_ 1的结果。我的Mac操作系统版本是10.9.3。代码文件"helloworld.cpp"正如您所期望的
dhcp-130-112:helloworld bwells$ cat helloworld.cpp
#include <iostream>
int main(void)
{
std::cout << "Hello world!" << std::endl;
return 0;
}
dhcp-130-112:helloworld bwells$
问题:从我在互联网上收集到的所有信息来看,"-stdlib=…"标志是g++的标准部分。为什么在包含g++时会出现错误?我该怎么解决这个问题?
注意:虽然在没有问题标志的情况下手动执行setup.py行是有效的,并且允许编译整个包,但当我试图将生成的包导入python时,我会遇到链接错误。我担心这里的g++问题是一个更大问题的症状,这就是为什么我试图直接解决它。
-stdlib=libc++
是一个Clang(而不是GCC(选项,告诉Clang使用LLVM libc++标准库(Clang使用该库(,而不是GNU libstdc++(GCC使用(。
由于出现了链接错误,您使用的其他软件包很可能是使用clang和libc++编译的,这与GCC的libstdc++不兼容(除了一些低级的东西(。因此,您还需要使用clang和libc++编译包。苹果的Xcode带有clang(这可能是你想要使用的(,MacPorts也提供了许多clang发行版。
相关文章:
- 带有 -stdlib=libc++ 的 clang++ 9.0.1 找不到<optional>
- C++17 - 使用自定义分配器的节点提取/重新插入 - 适用于 clang++/libc++,但不适用于 libstd
- 安装 libc++ 时出现问题
- 尝试从头开始实现Leetcode的FizzBuzz多线程问题。收到"libc++abi.dylib: terminating"错误
- Eclipse CDT clang 工具链 - 无法从链接器选项中删除 stdlibc++,但可以添加 libc++,E
- 如何要求 macports 用英特尔编译器包装 openmpi?
- 我可以在 ndk 中使用带有 libc++ 的实验性文件系统吗?
- E/libc++abi:终止于类型为google::protobuf::FatalException的未捕获异常
- libc++abi未定义符号:_ZTVN10__cxxabif120__si-class_type_infoE
- 在继承自 std::variant 的类上使用 std::visit——libstdc++ 与 libc++
- 在libc++和libstdc++之间的std::map上使用std::find时的实现差异
- 在clang的travis上使用不同的libc++版本
- MRB_THROW会导致libc++abi.dylib中的错误
- libc++:为什么流关闭后仍然很好
- 与libc相比,Gnu科学图书馆的性能较差
- 如何构建默认使用我自己的构建libc ++的clang?
- 使用 gperftools 的堆分析器来分析 libc malloc
- 如何将libc++与调试符号链接起来?
- 如何让macports安装clang++来使用非系统libc++
- 无法识别的命令行选项 '-stdlib=libc++' 与 MacPorts gcc48