代码之家  ›  专栏  ›  技术社区  ›  BullyWiiPlaza

Visual Studio忽略用于配置文件引导优化的CMake链接器标志

  •  0
  • BullyWiiPlaza  · 技术社区  · 5 年前

    我有一个 C++ 使用的项目 CMake 作为其内置系统 Visual Studio 2017 Enterprise the documentation /LTCG /GENPROFILE . 在 ,这似乎等同于设置变量 CMAKE_EXE_LINKER_FLAGS :

    set(LINKER_FLAGS, "/LTCG /GENPROFILE")
    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${LINKER_FLAGS}")
    

    此外,由于我的应用程序需要命令行参数,所以我必须在 launch.vs.json 如图所示 answer

    x64-Release 配置文件,它成功地完成了正常,无延迟 Release 打造时尚。不 .pgd 已生成,这意味着我传递的链接器标志可能已被忽略。

    另一个尝试是添加额外的 克马克 链接器标志变量:

    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}")
    

    这也没用。指定 /USEPROFILE 之后没有生成不同的二进制文件。而且,运行时大致相等。命令行上也没有显示已经生成或使用了配置文件。

    我做错什么了?

    0 回复  |  直到 5 年前