La forma "adecuada" de hacer esto en CMake en este momento, hasta que se agregue una característica base específica para cambiar las bibliotecas estándar, es usar un archivo de cadena de herramientas.
En ese archivo de cadena de herramientas, especifica el compilador, etc. de manera similar a las otras respuestas aquí.
PERO lo bueno de las cadenas de herramientas es que se pueden intercambiar rápidamente en la línea de comandos (usando -DCMAKE_TOOLCHAIN_FILE=ruta/al/archivo) O en VSCode con la extensión CMakeTools instalada, y probablemente también en otros editores.
¡Pero tener que codificar a mano sus propios archivos de cadena de herramientas es otra tarea oscura! ¡No es divertido!
Afortunadamente, me topé con este github que mantiene un conjunto de ellos para que no tengas que escribirlos desde cero. Debería ser mucho menos probable que se equivoquen.
https://github.com/ruslo/polly
No olvide configurar el compilador en clang++:
set(CMAKE_CXX_COMPILER "clang++")
Además, elimine los archivos generados por cmake (elimine la carpeta CMakeFiles
y CMakeCache.txt
).
Dependiendo de su sistema, también podría ayudar a configurar
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++ -lc++abi")