如何从 OS X 上的目标文件中删除单个名称
How to strip single name from object file on OS X
我正在按照 OS X 上的一些 Linux 说明进行操作,但卡在了一行中:
strip -N main my_file.o
strip
的 OS X 版本没有 -N
选项,我已经阅读了手册页两次,但我不确定如何执行此操作。
那么如何从 OS X 上的符号 table 中删除单个名称?
如您所说,strip
的 OSX 版本不允许这样做;因此,唯一的方法是在 声明 :
中使用它来限制其在代码中的可见性
__attribute__((visibility("hidden"))) void MyFunction1();
或者,您可以使用 -fvisibility=hidden
进行编译,并在上述 __attribute__
中使用 "default"
以仅公开您想要的符号。
无论如何,这是一种更好的方法,因为它不需要外部构建步骤。
注意:当 Objective-C 代码被引入代码库时,我发现这并没有像预期的那样工作...
我正在按照 OS X 上的一些 Linux 说明进行操作,但卡在了一行中:
strip -N main my_file.o
strip
的 OS X 版本没有 -N
选项,我已经阅读了手册页两次,但我不确定如何执行此操作。
那么如何从 OS X 上的符号 table 中删除单个名称?
如您所说,strip
的 OSX 版本不允许这样做;因此,唯一的方法是在 声明 :
__attribute__((visibility("hidden"))) void MyFunction1();
或者,您可以使用 -fvisibility=hidden
进行编译,并在上述 __attribute__
中使用 "default"
以仅公开您想要的符号。
无论如何,这是一种更好的方法,因为它不需要外部构建步骤。
注意:当 Objective-C 代码被引入代码库时,我发现这并没有像预期的那样工作...