我有一个Runtime
项目,该项目使用C++
作为CMake
中的构建系统。根据{{3}},我必须使用Visual Studio 2017 Enterprise
和/LTCG
进行链接。在/GENPROFILE
中,这似乎等同于设置变量CMake
:
CMAKE_EXE_LINKER_FLAGS
此外,由于我的应用程序需要命令行参数,因此我必须在set(LINKER_FLAGS, "/LTCG /GENPROFILE")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${LINKER_FLAGS}")
中定义它们,如本the documentation所示。
现在,如果我运行应用程序的launch.vs.json
配置文件,它将以正常的,不延迟的x64-Release
构建方式成功完成。没有生成Release
,这意味着我传递的链接器标志可能已被忽略。
另一种尝试是添加其他.pgd
链接器标志变量:
CMake
这也不起作用。之后指定set(LINKER_FLAGS, "/LTCG /USEPROFILE")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${LINKER_FLAGS}")
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${LINKER_FLAGS}")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${LINKER_FLAGS}")
set(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_STATIC_LINKER_FLAGS} ${LINKER_FLAGS}")
不会生成其他二进制文件。而且,运行时间大致相等。命令行上也没有指示已生成或使用配置文件。
我在这里做什么错了?