Los __FILE__
y __LINE__
macros Se construye en la C pre-procesador, y con frecuencia se utilizan para la impresión de salida de depuración con nombres de archivo y los números de línea. Necesito algo similar, pero con solo el nombre del directorio al final de la ruta. Por ejemplo, si mi código está en: /home/davidc/some/path/to/some/code/foo/bar Necesito una macro que simplemente me dará "barra", si el código está en/home/davidc/some/path/to/some/code/foo/bee entonces lo necesito para darme "abeja".¿Cómo escribo un coste por __DIR__ macro, similar a __FILE__
¿Alguna idea? (por cierto, esto es para una aplicación C++).
Actualización: para ser claros, busco una macro que me dé una cadena que contenga el nombre del directorio en tiempo de compilación, no quiero hacer ningún procesamiento de cadenas en tiempo de ejecución.
D'oh, me ganaste por un minuto, estaba haciendo exactamente lo mismo. No funciona si el último directorio tiene espacios, pero de lo contrario es una solución perfecta. Y créeme, he visto * mucho * peores monstruosidades en Makefiles antes. –
@ Adam: Solo tuve que hacer algunas _fixups_ para resolver los números de versión comenzando con los ceros esta noche. Pasar de 07.64 a 08.01 nos causó mucha pena innecesaria. –
Estoy usando CMake, así que debería ser capaz de hacer esto. ¡Gracias! –