【问题标题】:C++ Unresolved external symbol when using wofstream使用 wofstream 时 C++ 未解析的外部符号
【发布时间】:2013-10-29 09:02:42
【问题描述】:

我正在从批处理文件编译和链接此源代码,我现在正在导入的库是 MSVCRT.LIB Kernel32.lib User32.lib
代码一直有效,直到我包含 string iostreamfstream 并创建一些 wofstream 对象。那时链接器向我显示了一大堆未解析的符号,其中:

std::_BADOFF
static class std::locale::id std::codecvt
std::_Xout_of_range
std::_Fiopen
std::basic_streambuf
std::char_traits
std::basic_ios
std::locale::id::operator unsigned _int64

所以我想知道我可能缺少哪些库。在链接器中,我指定了/nodefaultlib 选项,因此我可以决定使用哪些库,但现在我遇到了这个问题,找不到这些标准函数的库。

【问题讨论】:

  • 不是答案(因此是评论):你为什么害怕链接标准库?
  • 好吧,我只是想知道我必须为字符串、iostream 和 fstream 链接哪些特定库,但我可以链接所有标准库。至少,我能知道标准中包含哪些库吗?
  • 该标准没有定义任何编译器框架。例如,编译器将被允许在其自身中携带所有定义,然后将它们硬连接到您的程序中。或者允许分成任意数量的库;例如在 GNU 框架中,数学库将是一个单独的库。

标签: c++ linker symbols unresolved-external wofstream


【解决方案1】:

短:MSVCPRT.LIB

这些符号在 C++ 运行时库中定义。尽管您确实与 MSVCRT.lib 链接(注意没有字母 P),但这只是 C,而不是 C++ 运行时。

这里是 MSDN 页面,您可能会发现有用的http://msdn.microsoft.com/en-us/library/abx4dbyh.aspx

【讨论】:

    猜你喜欢
    • 2013-02-28
    • 2012-11-19
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    • 2012-12-17
    • 2012-06-30
    • 1970-01-01
    相关资源
    最近更新 更多