cmake语法学习 - 01 Basic - D - shared - library

时间:2020-04-25
本文章向大家介绍cmake语法学习 - 01 Basic - D - shared - library,主要包括cmake语法学习 - 01 Basic - D - shared - library使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
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
)

*

add_library(hello_library SHARED 
    src/Hello.cpp
)

- SHARED must be upper case, and mark to generate a shared library.

Please note that, SHARED, do not miss the D here.

*

add_library(hello::library ALIAS hello_library)

- ALIAS , upper case only, just like "typedef". 

hello::library is the same as hello_library now. They are 2 names of the same thing.

And please note that "hello::library" is just a name !!! NO namespace in CMake!!!!

*

target_link_libraries( hello_binary
    PRIVATE 
        hello::library
)

- PRIVATE marks the linked files only avaliable in this scope.

In other words, within this subproject or the folder where this CMakeList.txt is.

原文地址:https://www.cnblogs.com/alexYuin/p/12773428.html