我将我的可执行文件与第三方静态库链接,该库是用传递给 C 编译器的错误定义编译的。同样的库也可以作为 DLL 使用,静态版本的编译使得所有符号都被导出。这对于静态库当然没有意义,因为导出会传播到可执行文件(或 DLL),这样的库将被集成到其中。
当我将可执行文件与该库链接时,库中的符号将从可执行文件中导出。我不关心生成的 .lib 和 .exp 文件。我需要摆脱可执行文件本身中的导出符号。
我需要的是一种方法:
强制清除链接器的导出符号列表,或
编辑从库中提取的目标文件以“取消导出”符号。
我正在使用 Visual Studio 2012 来构建项目。该库以 .LIB 文件的形式提供,我可以使用库管理器提取目标文件并使用 dumpbin 来确认导出符号的存在。
目前我不想打扰供应商修复它,或者更确切地说,我不希望他们在我变老之前回复。