MSVC与CMake和Ninja生成器的增量链接

时间:2017-02-08 15:27:43

标签: cmake ninja incremental-linking

我在Windows上使用CMake和Ninja生成器构建了一个共享库。我想使用增量链接来减少链接所需的时间。

我尝试将CMAKE_SHARED_LINKER_FLAGS设置为"/incremental",但此标记始终被CMake附加的"/INCREMENTAL:NO"覆盖。

我还尝试将MSVC_INCREMENTAL_DEFAULT设置为ON,但这并没有任何效果。

那么如何使用CMake和Ninja生成器进行增量链接?

1 个答案:

答案 0 :(得分:0)

将我的评论转化为答案

我在VS工具链文件中使用了类似的SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "/INCREMENTAL:YES" CACHE STRING "" FORCE)

请注意,CMake确实将其链接器标志组合/附加到例如CMAKE_SHARED_LINKER_FLAGS和构建类型特定部分,如CMAKE_SHARED_LINKER_FLAGS_RELEASE

所以你必须找出CMake为共享库设置/INCREMENTAL:NO的位置 - 正如你和我所做的那样 - 并用以下内容覆盖它:

set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "/INCREMENTAL:YES")

或者您可以迭代不同的构建配置特定变量,如: