cmake学习文档——动态库(四)

1.添加共享库

与上文关于静态库的示例一样,add_library() 函数也用于从某些源文件创建共享库。

add_library(hello_library SHARED
    src/Hello.cpp
)

这将用于创建一个名为 libhello_library.so 的共享库,并将源传递给 add_library() 函数。

2.别名目标

顾名思义,别名目标是目标的替代名称,可用于代替只读上下文中的真实目标名称。

add_library(hello::library ALIAS hello_library)

3.链接共享库

链接共享库与链接静态库相同。创建可执行文件时,使用 target_link_library() 函数指向您的库。

add_executable(hello_binary
    src/main.cpp)
target_link_libraries(hello_binary
    PRIVATE
        hello::library)

这告诉 CMake 使用别名目标名称将 hello_library 链接到 hello_binary 可执行文件。

4.示例

cmake_minimum_required(VERSION 3.5)

project(hello_library)

############################################################
# Create a library
############################################################

#Generate the shared library from the library sources
add_library(hello_library SHARED 
    src/Hello.cpp
)
add_library(hello::library ALIAS hello_library)

target_include_directories(hello_library
    PUBLIC 
        ${PROJECT_SOURCE_DIR}/include
)

############################################################
# Create an executable
############################################################

# Add an executable with the above sources
add_executable(hello_binary
    src/main.cpp
)

# link the new hello_library target with the hello_binary target
target_link_libraries( hello_binary
    PRIVATE 
        hello::library
)

翻译:

cmake-examples/01-basic/D-shared-library at master · ttroy50/cmake-examples · GitHub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值