Мне нужно определить во время выполнения, какие параметры компиляции использовались для создания исполняемого файла. Есть ли способ сделать это?Определение времени выполнения параметров компиляции
EDIT: Я особенно заинтересован в определении параметров оптимизации. Причина в том, что я пишу коммерческое программное обеспечение, которое должно работать как можно быстрее. Хотя я просто модифицирую и тестирую систему, я не делаю все оптимизации, потому что это занимает слишком много времени. Но я волнуюсь, что я могу случайно выйти и опубликовать неоптимизированную версию программы. Я бы хотел, чтобы программа дала мне визуальное предупреждение при запуске, сказав что-то вроде «Это медленная версия - не выпускайте».
EDIT: Возможно, я мог бы написать небольшую утилиту для запуска в качестве этапа предварительной сборки? Где-то в каком-то файле хранится ли в командной строке? Если это так, я мог бы извлечь его, а затем записать его в какой-то файл include как строку и hey presto!
EDIT: Мой выбор не между отладкой и выпуском. Отладка слишком медленная - я резервирую это строго для отладки. Мой ежедневный выбор - между оптимизированными и супер-оптимизированными (включая компиляцию с медленным компиляцией времени или даже оптимизацию с учетом профиля).
EDIT: Я часто вносить изменения в сложный процесс компиляции, различные библиотеки, различные предопределенные макросы, различные исходные файлы и т.д. кажется неуклюжим, чтобы поддерживать несколько, почти идентичные файлы проекта, отличающиеся только в пара оптимизационных флагов. Я бы предпочел просто, как-то и когда-то, переключить пару флагов в один проект и перекомпилировать. Я просто хочу, чтобы исполняемый файл самостоятельно тестировал, как он был создан.
EDIT: IIRC есть способ попросить визуальную студию создать файл makefile. Могу ли я попросить визуальную студию создать этот make-файл для меня как шаг предварительной сборки?
Все или некоторые из них? – MSN
Меня особенно интересуют флаги оптимизации. – Mick
Это стандарт в системе VS VS. У вас есть конфигурация Debug и Release. Вы используете первого, корабль последнего. Макрос DEBUG автоматически #defined для первого. –