[英]C++ Module: subcommand fails
我正在測試 C++ 中的模塊,但我不斷收到以下錯誤:
linker input file unused because linking not done
和
ld: file not found: CMakeFiles/TestModule.dir/src/A.cppm.o
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
這是我編寫的以下代碼:
模塊:A.cppm
export module A;
export namespace Lib_A {
int getNumberOne() { return 1; }
int getNumberTwo() { return 2; }
}
我的 main.cpp 文件:
#include <iostream>
import A;
int main() {
using namespace Lib_A;
std::cout << getNumberOne() << std::endl;
std::cout << getNumberTwo() << std::endl;
return 0;
}
現在我的 CMakeFile:
cmake_minimum_required(VERSION 3.24)
project(TestModule)
set(CMAKE_CXX_STANDARD 20)
add_executable(TestModule src/main.cpp src/A.cppm)
我正在使用 CLion 順便說一下,在查看了他們關於模塊支持的文檔后,我似乎仍然無法弄清楚可能是什么問題。
我還在我的 CMakeCXXCompiler.cmake 文件中添加了set(CMAKE_CXX_FLAGS "-fmodules-ts")
,因為這是我應該做的建議; 但是,這並沒有解決問題。
我是 C++ 的新手; 希望有人能幫助我。 感謝您的時間!!
我今天遇到了同樣的問題。 解決方案是將 .cppm 擴展名更改為 .cpp。
有許多文件擴展名 CMake 識別為 C++。這些在 CMAKE_CXX_SOURCE_FILE_EXTENSIONS 中定義。 “cppm”包含在此列表中,至少對於 CMake 版本 3.25.1,所以我不確定為什么將擴展名更改為 .cpp 可以解決問題。 也許別人知道。 考慮到 C++ 模塊有多新,這可能是一個錯誤。 希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.