Windows下VSCode中C++项目如何指定链接器选项(含/SAFESEH需求)
VSCode中给cl.exe指定/SAFESEH链接器选项的正确方法
要给cl.exe传递链接器选项,得用/link前缀——cl.exe作为MSVC的编译驱动程序,会自动调用链接器link.exe,加/link之后,后面的参数就会直接传给链接器,而非当作编译参数处理。
直接修改tasks.json的args数组,添加/link和/SAFESEH两项即可,修改后的配置如下:
{ "tasks": [ { "type": "cppbuild", "label": "C/C++: cl.exe build active file", "command": "cl.exe", "args": [ "/Zi", "/EHsc", "/nologo", "/Fe${fileDirname}\\${fileBasenameNoExtension}.exe", "${file}", "/link", // 分隔编译选项与链接器选项 "/SAFESEH" // 指定链接器需要的/SAFESEH选项 ], "options": { "cwd": "${fileDirname}" }, "problemMatcher": [ "$msCompile" ], "group": { "kind": "build", "isDefault": true }, "detail": "Task generated by Debugger." } ], "version": "2.0.0" }
这样配置后,构建时cl.exe会自动调用link.exe并带上/SAFESEH选项,就能解决McAfee每次构建隔离可执行文件的问题。
内容的提问来源于stack exchange,提问作者GuitGentlyWeeps
相关产品推荐
相关产品推荐

