Tengo un proyecto que se compila en múltiples plataformas ... Windows, Unix, Linux, SCO, nombre su sabor.Recuperar el nombre de destino de salida como una cadena en tiempo de compilación en C++
Me gustaría rellenar el nombre del destino de salida en una variable en el código fuente del proyecto (el nombre del programa de salida, DLL, biblioteca SO o lo que sea) para poder utilizarlo en los mensajes como una forma genérica de referencia nombre del componente ya sea un archivo EXE en Windows, un archivo DLL, una biblioteca de SO en Unix, etc.
lo que estoy pensando es una clave preprocesador como FUNCIÓN _ pero algo para tirar el nombre del archivo EXE/DLL en Windows en Visual C++, y luego en la biblioteca de salida SO en GCC. Esos probablemente sean dos mecanismos diferentes, por supuesto, pero creo que los combinaré en una sola opción que puedo utilizar genéricamente en mi código multiplataforma.
Así que un macro'ish cosa o algo que puedo llamar que al menos recoge el nombre de archivo de salida de Windows durante la compilación (Visual C++) para poder insertarlo en una cadena de caracteres en el código, y tal vez una forma de hacerlo lo mismo en GCC para que las dos plataformas se puedan envolver en una sola abstracción. Preferiblemente no recogido en el tiempo de ejecución pero capturado y persistido durante la compilación.
Si la salida es una biblioteca, entonces es el nombre del archivo lib. Si es un componente, entonces el nombre del archivo de componente de salida.
Espero que Boost o Poco ya tengan algo como esto con algunos puntos finales no admitidos, lo que está bien.
¡Gracias, había olvidado la sintaxis! – psycho