C++ Module 使用
main.cpp 源码
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| import std;
auto main() -> int { std::println("Hello, world!"); std::vector<int> v{1, 2, 3}; std::println("{}", v);
auto start = std::chrono::system_clock::now(); std::println("UCT time: {:%Y-%m-%d %H:%M:%S}", start); std::println("Local time: {:%Y-%m-%d %H:%M:%S %Z}", std::chrono::zoned_time{std::chrono::current_zone(), start}); return 0; }
|
g++ 命令行使用
先要进行模块的预编译
1
| g++ -std=c++23 -fmodules -fmodule-only -c -fsearch-include-path bits/std.cc
|
然后在编译源文件即可
CMake使用
1 2 3 4 5 6 7 8 9 10
| cmake_minimum_required(VERSION 4.1.2) set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD "d0edc3af-4c50-42ea-a356-e2862fe7a444")
project(ModuleTest)
set(CMAKE_CXX_MODULE_STD ON) set(CMAKE_CXX_STANDARD 23)
add_executable(ModuleTest main.cpp) target_link_libraries(ModuleTest stdc++exp)
|
注意!
貌似vscode中的微软c++插件对module的支持不好,clangd对自家的编译器支持很好,但是gcc就不能用了