build2: 编译器不支持模块
build2: compiler does not support modules
我可以使用 build2 构建没有 c++ 模块的 c++ 项目,但是当我尝试配置和使用带有 c++ 模块的 build2 时,出现 "compiler does not support modules" 错误。
我确定我的编译器能够构建模块,因为我可以使用这些命令手动构建:
clang++ --std=c++17 -fmodules-ts --precompile foo.cppm -o foo.pcm
clang++ --std=c++17 -fmodules-ts --precompile foo2.cppm -o foo2.pcm
clang++ --std=c++17 -fmodules-ts -c foo.pcm -o foo.o
clang++ --std=c++17 -fmodules-ts -c foo2.pcm -o foo2.o
clang++ --std=c++17 -fmodules-ts -fprebuilt-module-path=. foo.o foo2.o bar.cpp
我的 clang 版本是 7.0.0:
$ clang++ --version
clang version 7.0.0- (trunk)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
为了在 build2 中启用模块支持,我向根 buildfile
添加了以下行:
cxx.std = experimental
using cxx
assert $cxx.features.modules 'compiler does not support modules'
mxx{*}: extension = mxx
cxx{*}: extension = cxx
有什么问题吗?这是我第一次使用 build2,所以我可能会遗漏一些非常简单的东西。
管理它工作。
据我了解,问题是我更改了 buildfile
,但应该改用 build/root.build
。
我可以使用 build2 构建没有 c++ 模块的 c++ 项目,但是当我尝试配置和使用带有 c++ 模块的 build2 时,出现 "compiler does not support modules" 错误。
我确定我的编译器能够构建模块,因为我可以使用这些命令手动构建:
clang++ --std=c++17 -fmodules-ts --precompile foo.cppm -o foo.pcm
clang++ --std=c++17 -fmodules-ts --precompile foo2.cppm -o foo2.pcm
clang++ --std=c++17 -fmodules-ts -c foo.pcm -o foo.o
clang++ --std=c++17 -fmodules-ts -c foo2.pcm -o foo2.o
clang++ --std=c++17 -fmodules-ts -fprebuilt-module-path=. foo.o foo2.o bar.cpp
我的 clang 版本是 7.0.0:
$ clang++ --version
clang version 7.0.0- (trunk)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
为了在 build2 中启用模块支持,我向根 buildfile
添加了以下行:
cxx.std = experimental
using cxx
assert $cxx.features.modules 'compiler does not support modules'
mxx{*}: extension = mxx
cxx{*}: extension = cxx
有什么问题吗?这是我第一次使用 build2,所以我可能会遗漏一些非常简单的东西。
管理它工作。
据我了解,问题是我更改了 buildfile
,但应该改用 build/root.build
。