我有一个 CPP 源文件,它使用#if / #endif在某些版本中完全编译出来。但是,这会生成以下警告。
warning LNK4221: no public symbols found; archive member will be inaccessible
我正在考虑创建一个宏来生成一个实际上不会使用的虚拟变量或函数,这样这个错误就会消失,但我想确保它不会导致问题,例如在多个文件中使用宏会导致链接器轰炸多重定义的符号。
消除此警告的最佳方法是什么(而不是简单地抑制链接器命令行上的警告)?
FWIW,我很想知道如何通过抑制链接器命令行上的警告来做到这一点,但是我在那里的所有尝试似乎都被链接器忽略并且仍然产生错误。
另一个要求:修复必须能够承受单个文件构建或统一构建(组合 CPP 文件构建),因为我们的构建配置之一是批量构建(如统一构建但批量文件组而不是单个主统一文件)。