C++ Import std
记录一下如何使用 C++20 和 C++23 所提出的模块,尤其是 std 模块。
编译环境:
- Linux 系统 Ubuntu 24
- clang++20,使用libc++
测试代码 1
2
3
4
5
6import std;
int main() {
std::println("Hello, World!");
return 0;
}
首先需要预编译libc++的std模块: 1
clang++ -std=c++23 -stdlib=libc++ --precompile -x c++-module /usr/lib/llvm-20/share/libc++/v1/std.cppm -o std.pcm
得到的产物 std.pcm 存放在当前目录,然后和源文件一起进行编译
1
clang++ -std=c++23 -stdlib=libc++ -fmodule-file=std=std.pcm main.cpp -o main
最终可以顺利编译,没有报错,正常输出 Hello,world!
目前只尝试了这一种做法,对于g++,或者 MSVC,对应的版本要求以及具体操作细节也各有不同,暂时没兴趣去考究,反正显然有一堆 BUG。
如果搭配使用 CMake 则会带来更多的问题,CMake 需要足够高的版本才能支持,而且目前只能使用 Ninja 而非 Makefile。
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.
