c++ - clang (Windows) 上的 C++20 模块:最简单示例中的 typeinfo 错误
问题描述
文件first_module.cppm
export module first_module;
int foo(int x) {
return x;
}
export int e = 42;
export int bar() {
return foo(e);
}
预编译(没问题):
$ clang++ --std=c++20 -fmodules --precompile first_module.cppm -o first_module.pcm
编译器信息:
$ clang++ -v
clang version 10.0.0
Target: x86_64-pc-windows-msvc
文件first-main.cc
import first_module;
int main() {
return bar();
}
编译(没问题):
$ clang++ --std=c++20 -fmodules first-main.cc -fmodule-file=first_module.pcm first_module.pcm
一切都好。
文件second-main.cc
import first_module;
#include <iostream>
int main() {
std::cout << bar() << std::endl;
}
编译方式相同:
$ clang++ --std=c++20 -fmodules second-main.cc -fmodule-file=first_module.pcm first_module.pcm
结果:大量错误,例如:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\include\eh.h:56:14: error: reference to 'type_info' is ambiguous
_In_ type_info const& _Type,
^
note: candidate found by name lookup is 'type_info'
note: candidate found by name lookup is 'type_info'
我觉得我做错了什么,因为我有最新的 MSVS(最近更新),最新的 clang,但在 Windows 上的一些小例子仍然无法正常工作。
或者这可能是已知的错误?试着google了一下,没有结果。
解决方案
推荐阅读
- python - 搜索python字典的有效方法
- asp.net - 如何使用 Mailchimp.Net.V3 将 mailchimp 与 asp.net_core 项目集成?
- error-handling - 如何防止 Apollo 客户端 useQuery 中的错误传播?
- react-native - 我有时会意外结束流
- java - 如何从 Android 应用程序调用带有不记名令牌的 REST API?
- eclipse - 为什么 Eclipse 不断搜索主要类型,我该如何阻止它?
- azure - 使用 MS Graph API 和 Postman 调用 Teams,不支持的 AAD 身份
- javascript - 清理简单的联系表格
- android - 如何在 Kotlin 中只读取文本文件中的指定行?
- python - ValueError:形状(399,1)和(2,)未对齐:1(dim 1)!= 2(dim 0)