Любопытный глюк в MS VC с ассемблерным листингом и /GL
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 03.04.21 15:22
Оценка:
Сегодня обнаружил в MS VS/VC забавный глюк. Если указать компилятору ключ /GL (link-time code generation), то ключи /FAs, /FAc, /FAsc перестают создавать ассемблерные листинги. Наблюдается с компиляторами с 13.00 до 19.28 (из последней VS 2019). Логика этого совершенно непонятна, но вот так.

Но, если компилятор запускается из-под студии, то в конфигурациях "Application" и "DLL" ассемблерные листинги волшебным образом создаются, а вот в конфигурации "Static library" — нет. Понятно, что библиотеке LTCG, как правило, не нужно, а нередко и вредно, но я на автомате включил LTCG для всех проектов, после чего обнаружил, что листинги библиотеки перестали создаваться.

Командные строки компилятора идентичны с точностью до автоматически вставляемых студией определений вроде "/D_WINDLL". Если скопировать командную строку из лога студии и подсунуть ее CL, хоть непосредственно, хоть в RSP-файле — листинги не создаются, если присутствует /GL. Когда компилятор запускается студией с той же командной строкой — создаются.

Такое впечатление, что студия определяет какие-то переменные окружения, на которые реагирует компилятор. Вот только зачем вся эта шняга — .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.