使用cmake应用c++20模块示例
cmake_minimum_required(VERSION 3.28) project(moduledemo LANGUAGES CXX) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) add_executable(moduledemo main.cpp) target_sources(moduledemo PUBLIC FILE_SET CXX_MODULES BASE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}" FILES mymath.ixx )
要点:
cmake, msvc 版本不能太低,最好用最新的
没有用单独的模块编译版本, 而是用target_sources 定义模块, 使用add_library 方式始终没有成功过.
其他:
我使用的是qt creator , 期间可能会出现:auto-setup.cmake文件找不到现象,从其他项目里copy 了一份.
// mymain.ixx文件 export module mymath; export int add(int a, int b) { return a + b; }
// main.cpp #include <iostream> import mymath; using namespace std; int main() { int x = add(1, 2); cout << "return:" << x << endl; return 0; }
浙公网安备 33010602011771号