Я заметил, что если я запускаю strings
в своей программе, которая была скомпилирована g++
, вывод содержит имена различных классов, которые он использует.
Программа была скомпилирована с -O3
и без -g
или -p
, и имена классов все еще присутствуют, когда я удаляю двоичный файл.
Мне было интересно, зачем g++
хранить эту информацию в бинарнике? Все присутствующие имена классов кажутся классами, использующими виртуальные функции, поэтому я подозреваю, что это как-то связано с этим.
g++ -c blah.o blah.cpp
не включает имена классов до тех пор, пока оно не будет связано как исполняемый файл. - person Matt K   schedule 09.02.2011