如何使用gcc/g++ 11.1导入模块

qfe3c7zg  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(311)

不确定现在是否支持import <module_Name>;。当我试图运行一个包含模块的程序时,它会显示note: c++20 'import' only available with '-fmodules-ts'是一个编译器标志,如-std=c++20,或者是当前不支持的模块。下面是一个使用模块的示例程序:

#include<iostream>
import <numbers>;
import <format>;

int main()
{
    double pi {std::numbers::pi};
    std::cout << std::format("Pi is = to {}", pi);

}

我知道我可以使用#include <numbers>,但是我正在尝试弄清楚模块是否工作。我不确定是否可以使用#include添加<import>

**EDIT 10/8/21:**我制作了一个删除<format>std::format()的辅助程序,以使用-fmodules-ts标志测试import <numbers>;的实现,但它仍然不起作用。请参阅下面的程序和终端。

程序:

#include<iostream>
import <numbers>;

int main()
{
    double pi {std::numbers::pi};
    std::cout << pi;
}

终点站:

g++ randomCodeWhileReading.cpp -o main -std=c++2a -fmodules-ts
randomCodeWhileReading.cpp:2:1: error: unknown Compiled Module Interface: no such module
    2 | import <numbers>;
      | ^~~~~~
In module imported at randomCodeWhileReading.cpp:2:1:
/usr/include/c++/11/numbers: error: failed to read compiled module: Unknown CMI mapping
/usr/include/c++/11/numbers: note: imports must be built before being imported
/usr/include/c++/11/numbers: fatal error: returning to the gate for a mechanical issue
compilation terminated.
lnxxn5zx

lnxxn5zx1#

@ExZerminator,你说得对。完成:

# g++ -std=c++20 -fmodules-ts hello.cpp -o hello.exe -x c++-system-header iostream

相关问题