【发布时间】:2021-07-23 15:58:40
【问题描述】:
例如,我有以下玩具文件:
mod.hpp
#include <iostream>
使用.cpp
import "mod.hpp";
int main() {
std::cout << "Hello, World!" << std::endl;
}
但如果你像 cl use.cpp /std:c++latest 那样编译它,我会得到错误
error C7612: could not find header unit for 'mod.hpp'
如何在 MSVC 中创建/使用标头单元?
注意:我现在正在制作跨平台/跨编译器项目。这意味着我希望相同的源代码能够在 Windows 和 Linux 上的 MSVC/CLang/GCC 中编译。对我来说,将特定于 MSVC 的扩展名设为 .ixx/.cppm 是没有意义的,这就是我在案例中使用 .hpp/.cpp 的原因。不仅如此,我根本没有制作 .vcxproj/.sln 文件,我只考虑了在 MSVC 中编译的低级命令行调用。
我提出这个问题只是为了与现成的解决方案分享我的答案。
【问题讨论】:
标签: c++ visual-c++ command-line module c++20