【发布时间】:2020-10-18 05:54:34
【问题描述】:
情况:
- 我正在使用 CI 使用 CMake 和 MSVC 编译我的项目的 Windows 版本
- 它最后会出错,抱怨两个缺失的符号(
__std_system_error_allocate_message和__std_system_error_deallocate_message) - 当我在自己的计算机上复制构建过程时,构建完成正常并且工件运行时没有错误。
- 在 Google 上搜索这些符号没有任何线索表明它们应该在哪些库中定义。
这导致了我的问题:
- 是否可以查看 MSVC 链接器在哪里找到特定符号?
- 我能够找到说明来查看特定库中定义了哪些符号,但是这个项目链接了几十个库,而我目前搜索的那些库没有定义符号。我认为这种方法容易出错,因为我可能会在不知情的情况下错过某个库。
【问题讨论】:
-
它们是来自 MSVC 标准库实现 (github.com/microsoft/STL/pull/457/files) 的内部符号。检查两台计算机上是否有相同的工具包。并且没有使用来自 GitHub 的正在进行中的 STL。
-
@RichardCritten 我遇到了那个页面,但没有意识到它是标准库的一部分。我原以为该项目会被命名为 msvcrt 或类似的名称。谢谢你的澄清。
-
考虑项目管理人员的姓名缩写 - Stephan T Lavavej
标签: c++ visual-c++ linker