0

即使我希望其他库动态链接,如何强制库静态链接。我想动态链接我的大部分库,但我的一个库需要静态链接。有没有一种方法可以强制到该库的任何链接都是静态的,同时允许其他库动态链接?

cmake_minimum_required(VERSION 3.15) # required

set(BUILD_SHARED_LIBS ON) # BUILD_SHARED_LIBS is set to ON

add_library("Top_Level_Library" "${HEADER_FILES}" "${SOURCE_FILES}") # Top Library

add_library("Lower_level_library_1" "${HEADER_FILES}" "${SOURCE_FILES}") # Dependency 1

add_library("Lower_level_library_2" "${HEADER_FILES}" "${SOURCE_FILES}") # Dependency 2

target_link_library("Top_Level_Library" PUBLIC "Lower_level_library_1") # I want this library to link statically, even if BUILD_SHARED_LIBS is set to true
target_link_library("Top_Level_Library" PUBLIC "Lower_level_library_2") # I want this library to link depending on BUILD_SHARED_LIBS

请注意,以上是伪代码,因此修复代码中的“错误”不会解决我的问题。我只想知道是否有办法强制库始终静态链接,即使 CMake 中的其他库正在动态链接。

4

0 回答 0