我正在尝试使用 Visual C++ 2008 构建一个小型 Win32 应用程序,但我希望它可以在任何现代 Windows 机器上运行,而不必提供额外的库,也不必增加静态链接它们的大小。
我在互联网上阅读了很多关于这个主题的文章,比如这个: http: //kobyk.wordpress.com/2007/07/2...visual-c-2005/
我知道一个好主意是将我的项目动态链接到 msvcrt.dll,它可以在任何现代 Windows 作为系统 dll 中找到,而不是像 msvcr90 这样的新运行时会随着每个新的 Visual Studio 版本而变化。
所以在链接器选项中,我忽略了所有默认库 (/NODEFAULTLIB) 我将 msvcrt.lib 添加到附加依赖项中
但是我在编译时遇到了一堆“未解析的外部符号”错误,比如这些:
1>StubLib.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall std::bad_cast::~bad_cast(void)" (??1bad_cast@std@@UAE@XZ)
1>StubLib.obj : error LNK2001: unresolved external symbol "public: __thiscall std::bad_cast::bad_cast(char const *)" (??0bad_cast@std@@QAE@PBD@Z)
1>StubLib.obj : error LNK2001: unresolved external symbol "public: __thiscall std::bad_cast::bad_cast(class std::bad_cast const &)" (??0bad_cast@std@@QAE@ABV01@@Z)
1>StubLib.obj : error LNK2001: unresolved external symbol "long const std::_BADOFF" (?_BADOFF@std@@3JB)
我还尝试使用一些替代 C++ 运行时库,旨在减少 Minicrt、WCRT 等体积膨胀,但无论如何我都会收到“未解析的外部符号”错误。
任何帮助是极大的赞赏,
提前致谢