C++ 错误LNK2001:调试模式下未解析的外部符号

C++ 错误LNK2001:调试模式下未解析的外部符号,c++,visual-studio-2010,C++,Visual Studio 2010,我一直在尝试编译一个开源项目的定制版本,但是对于一个未经修改的驱动程序项目,一个相当恼人的错误仍然会出现: crypto_fast.lib(xts_fast.obj) : warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/OPT:ICF' specification crypto_fast.lib(twofish.obj) : error LNK2001: unresolved external symbol __RTC_

我一直在尝试编译一个开源项目的定制版本,但是对于一个未经修改的驱动程序项目,一个相当恼人的错误仍然会出现:

    crypto_fast.lib(xts_fast.obj) : warning LNK4075: ignoring '/EDITANDCONTINUE' due to '/OPT:ICF' specification
    crypto_fast.lib(twofish.obj) : error LNK2001: unresolved external symbol __RTC_CheckEsp
    crypto_fast.lib(sha512_hmac.obj) : error LNK2001: unresolved external symbol __RTC_CheckEsp
    crypto_fast.lib(aes_key.obj) : error LNK2001: unresolved external symbol __RTC_CheckEsp
    crypto_fast.lib(xts_fast.obj) : error LNK2001: unresolved external symbol __RTC_CheckEsp
    crypto_fast.lib(sha512_pkcs5_2.obj) : error LNK2001: unresolved external symbol __RTC_CheckEsp
这个列表要长得多,我不会包括所有的日志,原因很明显

我的假设是该项目不会在调试模式下运行,因为它似乎还没有定义属性,但我认为这无关紧要,因为另一个项目在这方面是类似的


无论如何,如果在未定义的调试模式导致错误的情况下,需要设置哪些特定属性才能允许此项目的调试过程?(关于这一点,我基本上感兴趣的是看看内部如何运行。)

我会检查您是否在
debug
release
中都有相同的
附加依赖项列表。每当我在项目设置中执行任何操作时,我总是做的第一件事就是将下拉列表更改为
All Configurations
,原因正是如此。我只是简单地将发布配置复制到一个新的调试配置,并检查所有引用是否相同。现在看来,引用错误仅限于msvcrt.lib。只有使用与构建其余代码相同的编译器设置来编译静态链接库,使用静态链接库才能获得良好的结果。这是一个严重的不匹配,它是用典型的调试构建设置构建的。您需要获得另一个.lib版本,才能获得一个成功且有效的发布版本。