在命令行中使用cl.exe
构建Visual C ++时,我可以使用cl /MT /GL main.cpp /link /LTCG /NODEFAULTLIB:libucrt.lib ucrt.lib
执行此操作。我可以通过运行tasklist /m /fi "imagename eq main.exe"
来验证结果,该列表将包含ucrtbase.dll但不包含vcruntimexxx.dll。
现在我真正的问题:我想像上面那样构建https://github.com/WebAssembly/binaryen。我在主CMakelists.txt中添加了以下内容:
ADD_COMPILE_FLAG("/MT")
ADD_COMPILE_FLAG("/GL")
ADD_LINK_FLAG("/LTCG")
ADD_LINK_FLAG("/NODEFAULTLIB:libucrt.lib")
ADD_LINK_FLAG("ucrt.lib")
构建的程序仍然动态链接到vcruntimexxx.dll。
如何使用CMake执行此操作?