c++ - MSVC查找符号来自何处

标签 c++ visual-c++ linker

情况:

  • 我正在使用CI使用CMake和MSVC编译我的项目的Windows版本
  • 它会在最后错误,指出两个缺失的符号(__std_system_error_allocate_message__std_system_error_deallocate_message)
  • 当我在自己的计算机上复制构建过程时,构建可以正常完成,并且 Artifact 可以正常运行。
  • 在Google上搜索这些符号不会产生关于应该在哪个库中定义它们的线索。

  • 这导致了我的问题:
  • 是否可以查看MSVC链接器在哪里找到特定符号?
  • 我能够找到说明来查看特定库中定义了哪些符号,但是该项目链接了数十个库,到目前为止,我搜索的库尚 undefined symbol 。我认为这种方法容易出错,因为我可能会在不知道的情况下错过图书馆。
  • 最佳答案

    @Richard Critten向我指出了正确的道路,问题是由于每个系统上都有不同版本的MSVC工具链。在我使用较新的16.6.1.0时,GitLab的CI运行器为using build tools version 16.2.3.0。卸载该文件并从this page安装16.2.3会重现该错误。重新编译我以前使用较新的工具链编译的依赖项,然后解决了两个系统上的错误。

    关于c++ - MSVC查找符号来自何处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62614915/

    相关文章:

    c++ - 为什么此 WinSock 代码无法连接到客户端?

    c++ - 用于多个视频的 QML 视频播放器

    c++ - Visual C++ 没有运算符 ">>"与这些操作数匹配

    c - 使用 gcc 链接到 sqlite3.h 的问题

    c++ - 预编译头 C++ 无法重命名 pch.h

    c++ - 对于从 C++ 中的文件加载的长字符串,正则表达式不匹配任何内容

    c++ - 调整属性表的错误

    c++ - 多个数组中的排序算法;二进制搜索功能

    Xcode 4.4 叮当错误 : linker failed

    java - 从 C 创建 JVM