Estoy desarrollando ejecutables de interfaz de línea de comandos para osx y linux usando c / c ++. El proyecto se vinculará con opencv. ¿Debo usar libc ++ o libstdc ++?
Estoy desarrollando ejecutables de interfaz de línea de comandos para osx y linux usando c / c ++. El proyecto se vinculará con opencv. ¿Debo usar libc ++ o libstdc ++?
Respuestas:
Usaría la biblioteca nativa para cada sistema operativo, es decir, libstdc ++ en GNU / Linux y libc ++ en Mac OS X.
libc ++ no está 100% completo en GNU / Linux, y no hay una ventaja real en usarlo cuando libstdc ++ es más completo. Además, si desea vincular a otras bibliotecas escritas en C ++, es casi seguro que se hayan creado con libstdc ++, por lo que también deberá vincularlas para usarlas.
Más información aquí sobre la integridad de libc ++ en varias plataformas.
std::ctype_base::mask
valores a <ctype.h>
constantes depende completamente de la plataforma. (Los elementos intrínsecos de la CPU los proporciona el compilador, el manejo de excepciones lo realiza una capa ABI de bajo nivel, pero la E / S normalmente se realiza por completo en las bibliotecas C ++ y C, no en las de bajo nivel).
Las principales distribuciones de Linux no proporcionan LLVM libc ++ porque:
Si finalmente libc ++ se convirtió en parte de las distribuciones, será como un componente opcional. vincular contra él probablemente requerirá opciones adicionales.
Como dijo Jonathan, debes usar cualquier herramienta que se incluya por defecto. Clang es seguro de usar en Linux ya que está configurado como un reemplazo de GCC, por lo que en ese aspecto no tiene que preocuparse por 2 compiladores. Además, dado que está apuntando a dos plataformas, debería echar un vistazo a cmake.