cmake语法学习 - 01 Basic - D - shared - library
Posted alexyuin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.
以上是关于cmake语法学习 - 01 Basic - D - shared - library的主要内容,如果未能解决你的问题,请参考以下文章
cmake语法学习 - 01 Basic - E- installing