我正在使用c / c ++为osx和linux开发命令行界面可执行文件。该项目将链接到opencv。我应该使用libc ++还是libstdc ++?
Answers:
我会为每个操作系统使用本机库,即GNU / Linux上的libstdc ++和Mac OS X上的libc ++。
libc ++在GNU / Linux上不是100%完整的,而libstdc ++更完整时使用libc并没有真正的优势。另外,如果您想链接到其他任何用C ++编写的库,那么几乎可以肯定它们都是使用libstdc ++构建的,因此也需要使用libstdc ++进行链接。
这里有更多有关libc ++在各种平台上的完整性的信息。
std::ctype_base::mask
值到<ctype.h>
常量的映射完全依赖于平台。(CPU内在函数由编译器提供,异常处理由低级ABI层完成,但IO通常完全在C ++和C库中完成,而不是低级内容)。
主要的Linux发行版不提供LLVM libc ++,因为:
如果最终libc ++成为发行版的一部分,它将作为可选组件。链接可能需要其他选项。
就像乔纳森(Jonathan)所说的那样,您应该使用默认情况下包含的任何工具。由于Clang已配置为GCC替代品,因此在Linux中可以安全使用Clang,因此在此方面,您不必担心2个编译器。另外,由于您的目标是两个平台,因此请看一下cmake。