【发布时间】:2019-03-07 01:29:27
【问题描述】:
我正在尝试使用 docker image 测试 c++ 模块
docker pull benboeckel/cxx-modules-sandbox:latest
docker run -it image_id
sh-4.4$ g++ --version
g++ (GCC) 9.0.1 20190301 (experimental) [c++-modules:20190305-1618]
然后,创建一个测试文件。
import std.io;
int main()
{
return 0;
}
我收到以下错误:
sh-4.4$ g++ -o m main.cpp -std=c++2a -fmodules-ts 在导入的模块中 在 main.cpp:1:1:std.io:错误:未能读取模块“std.io.gcm”:否 这样的文件或目录std.io:致命错误:跳下疯狂 train to crashville 编译终止。
更新:
以下代码可以正常工作。
//m.cpp
export module M;
export int sq(int i) { return i*i; }
//main.cpp
import M;
int main() { return sq(9); }
g++ -o m main.cpp m.cpp -std=c++2a -fmodules-ts
【问题讨论】:
-
什么是
std.io?那是 GCC 模块实现的一部分吗? -
@NicolBolas 我从 c++ 模块 ts 复制代码:open-std.org/jtc1/sc22/wg21/docs/papers/2018/n4720.pdf
-
这不能回答问题。 GCC 是否提供
std.io模块?如果没有,则无法导入。 -
@NicolBolas 谢谢,希望我能在它的文档中找到它
-
@NicolBolas 我认为在这个 docker 镜像中,std.io 还没有准备好。但是编译器确实支持模块:)。