GCC: видимость символов в автономных приложениях C ++ - PullRequest
2 голосов
/ 16 мая 2010

Из-за странное предупреждение C ++ о видимости некоторых символов и интересный ответ , ссылающийся на документ, который описывает различные типы и случаи видимости (раздел 2.2.4 о классах C ++), я начал задаваться вопросом, нужно ли вообще автономному приложению экспортировать символы вообще (кроме main - или это нужно?).

Почему именно их необходимо экспортировать в автономные приложения?

Является ли "экспортированный символ" синонимом для "видимого символа"? То есть скрытый символ - это символ, который не экспортируется?

Различаются ли объектные файлы между видимыми символами и скрытыми символами? Или это сделано на этапе связывания, так что экспортируются только видимые символы?

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

Ответы [ 2 ]

4 голосов
/ 16 мая 2010

Для приложений вам это не нужно, потому что у вас нет API ...

Видимость относится только к разделяемым объектам.

2 голосов
/ 24 октября 2010

Для приложений вам это не нужно, потому что у вас нет API ...

Исполняемые файлы PE и ELF могут экспортировать символы, как DLL или Shared Object.

...