【发布时间】:2010-09-21 21:40:39
【问题描述】:
有没有办法让 Microsoft Visual Studio 中构建的静态库独立于使用的 CRT(有调试支持/没有它)?
我的意思是,对于简单的 C 库,可以使用 gcc 生成代码,然后在 Visual Studio 中使用相同的静态库。生成的library.a 文件完全独立于/MT 或/MDd 开关,不会导致警告/链接错误。
与 Visual Studio 默认行为相比,您必须构建同一个库的两个版本 - 独立用于调试/发布模式。如果您尝试在 Debug 配置中使用 Release 版本,反之亦然,这会导致丑陋的警告 (warning LNK4098: defaultlib "LIBCMT" ...),但有时由于运行时不同而无法编译?
有什么办法可以避免这种情况吗?还是我做错了什么?
【问题讨论】:
-
生成代码的兼容性取决于更多选项,例如异常处理,成员函数指针表示。我希望有办法解决它(除了分发仅限标头的库)。
标签: c++ visual-studio static-libraries