我在 Windows 上使用 CMake 和 Ninja 生成器构建了一个共享库。我想使用增量链接来减少链接所需的时间。
我试图设置CMAKE_SHARED_LINKER_FLAGS
为,"/incremental"
但这个标志总是被"/INCREMENTAL:NO"
CMake 附加的 a 覆盖。
我也尝试设置MSVC_INCREMENTAL_DEFAULT
为ON
,但这没有任何效果。
那么如何使用 CMake 和 Ninja 生成器进行增量链接呢?
我在 Windows 上使用 CMake 和 Ninja 生成器构建了一个共享库。我想使用增量链接来减少链接所需的时间。
我试图设置CMAKE_SHARED_LINKER_FLAGS
为,"/incremental"
但这个标志总是被"/INCREMENTAL:NO"
CMake 附加的 a 覆盖。
我也尝试设置MSVC_INCREMENTAL_DEFAULT
为ON
,但这没有任何效果。
那么如何使用 CMake 和 Ninja 生成器进行增量链接呢?
将我的评论变成答案
SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "/INCREMENTAL:YES" CACHE STRING "" FORCE)
我在我的 VS 工具链文件中使用了类似的。
请注意,CMake 确实结合/附加了它的链接器标志,例如CMAKE_SHARED_LINKER_FLAGS
和构建类型特定的部分,如CMAKE_SHARED_LINKER_FLAGS_RELEASE
.
因此,您必须找出 CMake/INCREMENTAL:NO
为共享库设置的位置 - 正如您和我所做的那样 - 并用以下内容覆盖它:
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "/INCREMENTAL:YES")
或者您可以迭代不同的构建配置特定变量,例如: