Не можете удалить все ненужные символы в приложении Mac OS X c ++? - PullRequest
0 голосов
/ 21 ноября 2010

Я пытаюсь убрать из моего приложения Mac OS X все ненужные символы.Если я делаю это в моем приложении linux с помощью «--strip-лишний», то таблица символов в моем приложении пуста и ничего не возвращает.

В Mac OS X я вижу символы, связанные с записями typeinfo и vtableдля моих занятий, а также некоторые функции.Насколько я могу судить, это происходит с функциями, определенными в заголовках и помеченными как встроенные.Неопределенные функции, поступающие из внешних библиотек, присутствуют в выводе nm, но помечены "U".

strip -u -r myapp, похоже, не удаляет их.

Попытка поместить их вудаление файла и выполнение: strip -u -r -R remove_file.txt myapp

тоже не работает.Это монолитный двоичный файл, чьи единственные зависимые библиотеки находятся на основе corefoundation и сред veclib.

Любые предложения, пожалуйста?

1 Ответ

1 голос
/ 21 ноября 2010

У меня нет определенного решения (я все еще нахожусь в процессе изучения C ++ (и Objective C ++) и учусь самостоятельно разбираться с этим), но вы можете посмотреть:

Видимость встроенных функций

и

Техническое примечание TN2185: Советы и рекомендации по C ++ для Mac OS X

Какая текущая настройка для «Скрытых встроенных методов»? (Дважды щелкните цель в столбце «Группы и файлы», перейдите на вкладку «Сборка», прокрутите вниз до «Генерация кода» или выберите следующий параметр:

[GCC_INLINES_ARE_PRIVATE_EXTERN, -fvisibility-inlines-hidden] "Когда включено, внеплановые копии встроенных методов объявляются как 'private extern'". )

...