提问人:Connagh Jacobi 提问时间:10/24/2023 更新时间:10/24/2023 访问量:42
如何从静态库中剥离私有成员函数符号
How to strip private member function symbols from static lib
问:
我正在寻找是否可以从静态库中剥离所有私有成员函数符号。我的类如下所示:
页眉:
#define PUBLIC __attribute__ ((visibility ("default")))
#define LOCAL __attribute__ ((visibility ("hidden")))
namspace my_namespace {
class my_class {
public:
PUBLIC my_class();
PUBLIC ~my_class();
PUBLIC void do_something();
private:
LOCAL float internal_func();
LOCAL inline float inline_func();
float member_var_;
}
}
CPP:
namspace my_namespace {
my_class::my_class(){member_var_ = 0;}
...
void my_class::do_something(){
... somecode
member_var_ = internal_func();
member_var_ += inline_func();
}
float my_class::internal_func() {
... some code
}
inline float my_class::inline_func(){
... some code
}
}
我的实际代码要复杂得多,其中包含许多函数和私有成员变量,几乎每个函数都使用一些成员变量,因此我无法将它们声明为静态或将它们从类中删除。
我使用编译标志,内联标志在已内联但我仍然能够从文件中 grep 出来的函数上工作正常。-fvisibility=hidden -fvisibility-inlines-hidden
internal_func
libmy_class.a
使用 GNU Strip 也不会删除符号,我仍然能够将私有函数 grep 出来。--strip-unneeded
我错过了什么吗?还是这些符号无法剥离?
答: 暂无答案
评论