C ++模块“无法读取模块'std.io.gcm':没有此类文件或目录”

时间:2019-03-07 01:29:27

标签: c++ c++20

我正在尝试使用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:致命错误:疯了   前往rashville编译的火车终止了。

更新:

以下代码可以正常工作。

//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

1 个答案:

答案 0 :(得分:2)

Modules已添加到C ++ 20草案中,但这并不意味着标准库现在已模块化。 There's an effort to modularize it,但到目前为止,我们还没有具体的内容:

  

尽管我们似乎已经在模块语言功能的设计上达成共识,但是我们关于如何以及何时将C ++标准库模块化的计划还不成熟。已经提出了一些建议([P0581R1][P1212R0]),并且已经进行了初步讨论([2018-Jacksonville-LEWG-P0581R0-Minutes][2018-San-Diego-EWG-P1212R0-Minutes]),但我们还没有承诺要走的路。鉴于C ++ 20周期已接近尾声,现在是时候该决定我们在C ++ 20中使用标准库模块的策略了。