gpt4 book ai didi

c++ - 如何从最终二进制文件中排除未使用的方法?

转载 作者:可可西里 更新时间:2023-11-01 16:29:23 27 4
gpt4 key购买 nike

我认为未在其类中使用的 private 方法已被编译器/链接器删除,不会成为最终二进制文件的一部分。

我创建了一个示例类,其中包含一个已实现但未使用的私有(private)方法。

class XXX
{
public:
XXX();

private:
void MyUnusedMethod();
};

在实现文件中:

void XXX::MyUnusedMethod()
{
const char* hugo = "ABCCHARLYABC";
printf( hugo );
}

编译后字符串仍然存在于最终的二进制文件中。为什么?我该如何防止这种情况发生?

最好的问候,查理

最佳答案

一种可移植的方法是为每个函数创建一个 .o 文件。然后从那些 .o 文件构建一个存档 .a。当链接到那个存档时,链接器只链接那些解析符号的 .o 文件,即没有链接到没有人调用的函数的 .o 文件。

另一种方法是使用最新版本的 gcc 和 link-time code generation .

关于c++ - 如何从最终二进制文件中排除未使用的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6993673/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com