Visual Studio 如何正确使用/GUARD:CF MSVC标志?

vdzxcuhz  于 2023-10-23  发布在  其他
关注(0)|答案(2)|浏览(146)

我正在尝试使用/GUARD:CD MSVC标志。从the documentation,它说
必须同时为编译器和链接器指定/GUARD:CF选项
文档还说/GUARD:CF也需要设置the /DYNAMICBASE option
然而,当我尝试编译时,我看到了无法识别的选项的警告:

cl -c /W3 /O2 /EHsc /MP /Zi /nologo /MD /Zi /DUNICODE /D_UNICODE /D_CRT_SECURE_NO_DEPRECATE /LD -Isrc -Iimport/include -D_WINDOWS -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL /GS /DYNAMICBASE /GUARD:CF    /Fo: redacted.cpp.obj redacted.cpp
cl : Command line warning D9002 : ignoring unknown option '/GU'
cl : Command line warning D9002 : ignoring unknown option '/GD'
cl : Command line warning D9002 : ignoring unknown option '/G:'
cl : Command line warning D9002 : ignoring unknown option '/GC'

起初我以为可能是我不小心在文本编辑器中引入了不可打印的字符,但我用cat --show-nonprinting验证了情况并非如此。
如何正确地将/GUARD:CF传递给MSVC cl编译器,以便它识别它?

nfzehxib

nfzehxib1#

您链接的页面是MSVC链接器选项手册的一部分。链接器选项不区分大小写。该页面有一个指向MSVC编译器选项手册的链接:
当使用/guard:cf选项编译源代码时。
其他选项区分大小写。正确的cl调用

cl -c /W3 /O2 /EHsc /MP /Zi /nologo /MD /Zi /DUNICODE /D_UNICODE /D_CRT_SECURE_NO_DEPRECATE /LD -Isrc -Iimport/include -D_WINDOWS -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL /GS /DYNAMICBASE /guard:cf  /Fo: redacted.cpp.obj redacted.cpp

只是想知道。对于链接器和编译器,禁用保护是不同的:/GUARD:NO/guard:cf-

xuo3flqw

xuo3flqw2#

你链接的文档(关于 linker/GUARD选项)是相当误导的,但答案就在那里,如果你仔细看的话:
对于 compiler,命令行选项需要在中(但链接器似乎接受或)。
因此,在cl命令行上使用/guard:cf而不是/GUARD:CF
关于linked document
当使用/guard:cf选项编译源代码时,...
而且,在/guard:cf链接到的页面上,开关永远只以的形式给出。

相关问题