当将静态库链接到可执行文件时,未使用的符号通常会被丢弃。在我的情况下,一些否则不使用的对象用于将它们各自的类注册到工厂中,如果这些对象被丢弃,此注册将失败。在使用gcc的Unix系统下,可以向链接器ld传递--whole-archive标志(请参见以下内容从ld文档中摘录的说明),使ld不丢弃任何对象。对于Visual C ++是否有类似的功能呢?
--whole-archive
在命令行上使用--whole-archive选项指定的每个存档文件中,都包含存档文件中的每个对象文件,而不是在存档文件中搜索所需的对象文件。这通常用于将存档文件转换为共享库,强制将每个对象包含在生成的共享库中。此选项可以使用多次。
--whole-archive
的解释,我正好在搜索何时使用它的场景。 - Deqing