2015-11-15 1 views
2

Я выполняю некоторые инструкции Linux на OS X, и я застрял на одной линии:Как раздеться одно имя из объектного файла на OS X

strip -N main my_file.o 

версия OS X из strip не имеет -N вариант и я дважды читал страницу man, но просто не знаю, как это сделать.

Итак, как мне удалить одно имя из таблицы символов в OS X?

ответ

2

Как вы говорите, версия OSX strip не позволяет этого; Поэтому единственный способ ограничить его видимость в коде, используя это на декларации:

__attribute__((visibility("hidden"))) void MyFunction1(); 

В качестве альтернативы вы можете скомпилировать с -fvisibility=hidden и использовать "default" в приведенном выше __attribute__ только разоблачить символы, которые вы хотите.

В любом случае это лучший подход, так как он не требует внешнего шага сборки.

Примечание: я нашел, что это не работает, как ожидается, когда код Objective-C, вводится в базу кода ...

Reference