使用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;
}

 

posted on 2025-02-09 15:10  金凯旋  阅读(304)  评论(0)    收藏  举报

导航