如何在Compiler Explorer中使用MSVC构建多文件项目?
适配MSVC的Compiler Explorer多文件项目修改方案
1. 调整编译选项
替换GCC风格的参数,添加MSVC必需的编译选项:
- 将
-std=c++17修改为/std:c++17(MSVC的C++标准指定格式) - 添加
/EHsc选项(启用标准C++异常处理,MSVC默认未开启该选项)
2. 修改Makefile核心规则
原Makefile基于GCC工具链,需完全适配MSVC的cl.exe编译器和link.exe链接器:
替换工具链变量
将原Makefile中的编译器、链接器变量修改为:
CXX = cl.exe LINKER = link.exe
重写目标文件编译规则
替换GCC的编译命令为MSVC格式,示例规则:
%.obj: %.cpp $(CXX) /c /std:c++17 /EHsc /Fo$@ $<
/c:仅执行编译,不进行链接/Fo$@:指定输出的目标文件名(对应当前规则的%.obj)$<:指代当前规则依赖的源文件
重写可执行文件链接规则
替换GCC的链接命令为MSVC格式,示例规则:
main.exe: main.obj other.obj $(LINKER) /OUT:$@ $^
/OUT:$@:指定输出的可执行文件名$^:指代当前规则的所有依赖目标文件
3. 适配清理规则(可选)
如果原Makefile包含清理规则,替换为Windows平台的删除命令:
clean: del /Q *.obj main.exe
/Q:静默删除文件,不弹出确认提示
完成以上修改后,Compiler Explorer的MSVC编译器即可正常构建该多文件项目。
内容的提问来源于stack exchange,提问作者Enlico
相关产品推荐
相关产品推荐

