我应该使用libc ++还是libstdc ++?

我正在使用c / c ++开发osx和linux的命令行界面可执行文件。 该项目将链接到opencv。 我应该使用libc ++还是libstdc ++?

我将为每个操作系统使用本地库,例如GNU / Linux上的libstdc ++和Mac OS X上的libc ++。

libc ++在GNU / Linux上并不是100%完整的,当libstdc ++更完整时,使用libc ++并没有真正的优势。 另外,如果你想链接到用C ++编写的任何其他库,它们几乎肯定会用libstdc ++编译,所以你也需要链接到它,以便使用它们。

主要的Linux发行版不提供LLVM libc ++,因为:

  1. 与Apple和FreeBSD不同,GPL + 3不是问题,所以不需要在这里实现另一个堆栈。
  2. Linux组件已经围绕GNU libstd ++开发了很久了。 其中一些不build立在其他任何东西上。
  3. 虽然libc ++在新function方面很强大,但是遗留代码却有一些问题。

如果最终libc ++成为发行版的一部分,它将作为一个可选组件。 链接它可能需要额外的select。

像乔纳森说的,你应该使用默认包含的任何工具。 Clang在Linux中是安全的,因为它被configuration为GCCreplace,所以在这方面你不必担心2个编译器。 另外,既然你是针对两个平台,你应该看看cmake。

据说libc ++在模板错误上有更多的人类可读的错误消息。