根据cppreference,标准库模块(P2465R3)现在已经成为Clang 17的实验功能。但我在下面测试它,它失败了:
CMakeList.txt
CMAKE_MINIMUM_REQUIRED(VERSION 3.27)
set(CMAKE_EXPERIMENTAL_CXX_MODULE_CMAKE_API "aa1f7df0-828a-4fcd-9afc-2dc80491aca7")
set(CMAKE_EXPERIMENTAL_CXX_MODULE_DYNDEP ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_CXX_STANDARD 23)
project(1-1)
add_executable(${CMAKE_PROJECT_NAME})
target_sources(${CMAKE_PROJECT_NAME}
PUBLIC
FILE_SET all_my_modules TYPE CXX_MODULES FILES
PUBLIC
main.cpp
)
字符串
main.cpp
import std;
using namespace std;
int main(){
cout<<"Hello\n";
}
型
它显示:
fatal error: module 'std' not found
型
所以我猜它需要在Clang 14中添加像<format>
这样的额外选项。但是我在llvm doc或谷歌上找不到。有人能给予我一些帮助吗?
我在一个更复杂的例子中尝试了clang的模块,但是#include
标准库。所以我确信这只是因为标准库模块。
1条答案
按热度按时间xhv8bpkk1#
clang和libc对标准模块的支持是高度实验性的。值得注意的是,如果你只是正常安装,
std
模块的模块文件将不会安装。libc团队在这里提供了一些说明,如果你想尝试一下:
https://libcxx.llvm.org/Modules.html