小编Ade*_*art的帖子

如何使用 g++ 成功编译任何内容并启用模块?

我有以下文件:

文件测试2.cpp

#include <string>
#include <iostream>

int main() {
    std::string ss = "aaaa";
    ss += "aa";
    std::cout << ss << "\n";
}
Run Code Online (Sandbox Code Playgroud)

当我像这样编译它时:g++-11 -o Testing2 Testing2.cpp -std=c++20,我得到了所需的输出。当我像这样编译它时:g++-11 -o Testing2 Testing2.cpp -std=c++20 -fmodules-ts,我收到运行时分段错误错误。

问题 1:这是 g++ 中的错误,还是我遗漏了什么?

我有几个类似的问题,一个与std::filesystem,一个与std::map。即使没有实际使用模块,代码也将无法正常工作。

问题2:上面的代码甚至没有使用模块。为什么 g++ 在-fmodules-ts启用和未启用时编译它的方式不同?

c++ gcc g++ c++20 c++-modules

7
推荐指数
1
解决办法
835
查看次数

标签 统计

c++ ×1

c++-modules ×1

c++20 ×1

g++ ×1

gcc ×1