Могу ли я увидеть, что устраняется с помощью опции компоновщика Visual C ++ / OPT: REF? - PullRequest
3 голосов
/ 02 октября 2009

Опция /OPT:REF заставляет компоновщик Visual C ++

Исключить функции и / или данные, на которые никогда не ссылаются

( MSDN )

Кажется, это был бы хороший способ идентифицировать устаревший код в устаревшей кодовой базе. Есть ли способ заставить компоновщик вывести то, что исключено?

Ответы [ 2 ]

7 голосов
/ 23 апреля 2011

В / OPT (Оптимизации) , в разделе «Примечания» указано:

Вы можете использовать опцию / VERBOSE , чтобы увидеть функции, удаленные с помощью / OPT: REF, и функции, которые сложены с помощью /OPT:ICF.

.

Я еще не пробовал использовать его для ваших целей.

Также вы можете обратиться к SO Вопрос 641826 , чтобы исключить сгенерированные компилятором символы, если вы выберете маршрут, заданный @JamesMcNellis answer .

2 голосов
/ 11 октября 2009

Это не идеально, но ...

Вы можете сделать две сборки, одну с /OPT:REF, а другую без, а затем запустить dumpbin /symbols в полученных двоичных файлах, проанализировать символы и представить результаты. Хитрость будет в том, чтобы отсеять библиотечные символы, чтобы у вас остались только ваши символы. Поскольку вы получите список искаженных имен, он не будет красивым.

Я не знаю, как заставить компоновщик просто сказать вам, что он удаляет.

...