【问题标题】:GCC - don't compile unused codeGCC - 不要编译未使用的代码
【发布时间】:2013-06-02 10:48:40
【问题描述】:

当我为我的智能手机内核编译制造商的源代码时,有很多各种未使用的变量/函数警告。是否有任何选项可以设置为 GCC/LD 以不编译这些未使用的东西?

我在这里找到了解决方案How to remove unused C/C++ symbols with GCC and ld?,但它与增量链接冲突,所以我不能使用它。还有其他解决方案吗?

【问题讨论】:

    标签: linux gcc linux-kernel kernel gcc-warning


    【解决方案1】:

    GCC 的未使用变量警告就是这样——它告诉你代码声明了一个变量但没有使用它。它实际上不会为这样的变量编译任何代码,因为没有要编译的代码,只有声明。这是一个警告,因为它通常是草率编程的症状。

    删除链接器符号是一个完全不相关的问题,通常不是您想要的。你认为你为什么要这样做?

    【讨论】:

    • 全局变量呢?它们不是发生在 RAM 中吗?未使用的功能呢?他们不会增加输出文件的大小吗?
    • 是(全局变量)和是(函数,但不会产生警告)。如果这就是你的警告,那么你只需要修复代码。但根据我的经验,这些警告中有 99% 是针对在代码更改时被遗弃的本地人。
    • 谢谢,在我的代码中有未使用的静态全局表,大小约为 60-80B。
    猜你喜欢
    • 2014-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多