fatal error LNK1120_ 3 unresolved externals

文章描述了在使用VisualStudio进行编译时遇到的LNK2001错误,该错误涉及LIBCMT.lib库中未解析的外部符号。解决方案是确保将相应的lib文件路径添加到工程的LIB环境变量中。文章提供了具体的VisualStudio包含和库目录的路径示例,并指导用户如何编辑环境变量以解决编译问题。
  • LIBCMT.lib(loadcfg.obj) : error LNK2001: unresolved external symbol __guard_eh_cont_table

  • LIBCMT.lib(loadcfg.obj) : error LNK2001: unresolved external symbol __guard_eh_cont_count

  • LIBCMT.lib(loadcfg.obj) : error LNK2001: unresolved external symbol __volatile_metadata

  • hello.exe : fatal error LNK1120: 3 unresolved externals

  • img

  • __guard_eh_cont_table
    __guard_eh_cont_count
    __volatile_metadata
    
  • 这些符号或函数引用是在 LIBCMT.lib 库文件中定义的,将其添加到

    LIB环境变量

    中即可

    • D:\Program\VisualStudio2022\VC\Tools\MSVC\14.34.31933\lib\x64
      
    • img

    • img

  • 很可能是工程中引用了

    第三方开源库

    或者

    自己编译生成的库

    ,且只用了

    头文件

    ,而没有将对应的lib文件路径加入到工程中。

    • 一定是通过添加include或者lib的方式来解决的。重点是找到这个lib所在的文件夹位置
  • 把Visual Studio中的环境变量拿过来

    • include

      • 既然Visual Studio中可以正常使用,那么把它的环境变量拿过来,自己的命令行中也可以正常使用

      • img

      • img

      • D:\Program\VisualStudio2022\VC\Tools\MSVC\14.34.31933\include
        D:\Program\VisualStudio2022\VC\Tools\MSVC\14.34.31933\atlmfc\include
        D:\Program\VisualStudio2022\VC\Auxiliary\VS\include
        C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\ucrt
        C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\um
        C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\shared
        C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\winrt
        C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\cppwinrt
        C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\Include\um
        
      • 结尾添加上分号直接粘贴到include环境变量中

        • D:\Program\VisualStudio2022\VC\Tools\MSVC\14.34.31933\include;D:\Program\VisualStudio2022\VC\Tools\MSVC\14.34.31933\atlmfc\include;D:\Program\VisualStudio2022\VC\Auxiliary\VS\include;C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\ucrt;C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\um;C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\shared;C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\winrt;C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\cppwinrt;C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\Include\um;
          
      • 粘贴之前

        • img
      • 点击编辑文本

        • img
      • 粘贴之后

        • img
    • lib目录

      • lib目录也采用这种方式来进行查找复制和粘贴

        • img

        • D:\Program\VisualStudio2022\VC\Tools\MSVC\14.34.31933\include
          D:\Program\VisualStudio2022\VC\Tools\MSVC\14.34.31933\atlmfc\include
          D:\Program\VisualStudio2022\VC\Auxiliary\VS\include
          C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\ucrt
          C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\um
          C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\shared
          C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\winrt
          C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\cppwinrt
          C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\Include\um
          
        • 在结尾加上分号

        • D:\Program\VisualStudio2022\VC\Tools\MSVC\14.34.31933\lib\x64;D:\Program\VisualStudio2022\VC\Tools\MSVC\14.34.31933\atlmfc\lib\x64;D:\Program\VisualStudio2022\VC\Auxiliary\VS\lib\x64;C:\Program Files (x86)\Windows Kits\10\lib\10.0.22000.0\ucrt\x64;C:\Program Files (x86)\Windows Kits\10\lib\10.0.22000.0\um\x64;C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\um\x64;
          
        • 编辑好的lib环境变量

        • img

  • 手动指定lib库的位置

    • 可以看到,指定了LIBPATH,那么现在就不再说这个LIBCMT.lib找不到了,也可以正常编译了
    • img
    • 也可以直接编译出来模型了
    • img

CMT.lib找不到了,也可以正常编译了

  • [外链图片转存中…(img-repAsUx1-1684685458341)]
  • 也可以直接编译出来模型了
  • [外链图片转存中…(img-8i7Ps5j8-1684685458341)]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值