У меня есть проект, который компилируется на нескольких платформах ... Windows, Unix, Linux, SCO, назовите ваш вкус.
Я бы хотел вставить имя выходной цели в переменную в исходном коде проекта(имя выходной программы, DLL, SO-библиотеки или чего-либо еще), чтобы я мог использовать его в сообщениях как общий способ ссылки на имя компонента, будь то EXE-файл в Windows, DLL-библиотека, SO-библиотека в Unix и т. д.
Я имею в виду ключ препроцессора, такой как FUNCTION _, но для чего-то, чтобы извлечь имя EXE / DLL в Windows в Visual C ++, а затем во вторую библиотеку вывода SO в GCC,Конечно, это, вероятно, два разных механизма, но я рассчитываю объединить эти два в один вариант, который я могу использовать в моем многоплатформенном коде в общем.
Итак, макрос или что-то, что я могу назвать, которыйпо крайней мере, выбирает имя выходного файла Windows во время компиляции (Visual C ++), чтобы я мог вставить его в константную строку в коде, и, возможно, способ сделать то же самое в GCC, чтобы две платформы могли быть объединены в одну абстракцию,Желательно не собирать во время выполнения, но перехватывать и сохранять во время компиляции.
Если вывод представляет собой библиотеку, то это имя файла lib.Если это компонент, то имя файла выходного компонента.
Я предполагаю, что Boost или Poco должны иметь что-то подобное, возможно, с некоторыми неподдерживаемыми конечными точками, что нормально.