且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

使用clang链接C ++模块TS

更新时间:2023-11-10 16:38:52

就像> https://blogs.msdn.microsoft.com/vcblog/2015/12/03/c-modules-in- vs-2015-update-1 / 说,.cppm(.ixx)转换为.pcm(.ifc) .o(.obj)。

Like what https://blogs.msdn.microsoft.com/vcblog/2015/12/03/c-modules-in-vs-2015-update-1/ says, .cppm (.ixx) translates to .pcm (.ifc) and .o (.obj).

但是与cl.exe自动生成这两个文件不同,Clang的.o文件必须从其.pcm文件进行编译:

But unlike cl.exe, which automatically produce these two files, Clang's .o file must be compiled from its .pcm file:

clang++ --std=c++17 -fmodules-ts -c foo.pcm -o foo.o

使用上面的 foo.cppm bar.cpp ,命令将是像这样:

With foo.cppm and bar.cpp above, the commands would be like:

clang++ --std=c++17 -fmodules-ts --precompile foo.cppm -o foo.pcm
clang++ --std=c++17 -fmodules-ts -c foo.pcm -o foo.o
clang++ --std=c++17 -fmodules-ts -fprebuilt-module-path=. foo.o bar.cpp