繁体   English   中英

CMake:链接选项

[英]CMake: link options

我有一个定义多个目标库(静态和动态)的 Android CMakeList.txt。 对于其中一个库,我需要将 -Wl,--version-script 与特定版本的脚本一起传递,为了实现这一点,我正在使用 target_link_libraries:

target_link_libraries( # Specifies the target library.
        native-lib1
        # Links the target library to the log library
        # included in the NDK.
        ${log-lib}
        -Wl,--version-script=${CMAKE_SOURCE_DIR}/../../../../../../native1.map
        )

不幸的是, -Wl 选项被添加到我所针对的所有其他库中,导致我出现任何类型的链接问题,因为 native1.map 仅引用 native-lib1 中的函数。 我也尝试使用 target_link_options 和 add_link_options 但 Android Studio 返回错误,指出这些不是有效的 CMake 命令。

有没有办法为 CMakeList.txt 中的单个库定义 linker 选项?

我假设该选项在这里被视为PUBLIC 一般来说,我建议在使用target_***命令时始终指定“可见性”。

在这种情况下,我建议使用target_link_options ,因为这更清楚地说明了意图。

target_link_libraries( # Specifies the target library.
        native-lib1
        # Links the target library to the log library
        # included in the NDK.
        ${log-lib}
        )
target_link_options(native-lib1
    PRIVATE 
        "-Wl,--version-script=${CMAKE_SOURCE_DIR}/../../../../../../native1.map"
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM