zoukankan      html  css  js  c++  java
  • cmake语法学习

    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.

  • 相关阅读:
    「考试」省选62
    「考试」省选61
    「考试」省选59
    「刷题」THUPC泛做
    「考试」省选58
    「考试」省选57
    「考试」省选56
    「考试」省选55
    「考试」省选54
    「考试」省选52
  • 原文地址:https://www.cnblogs.com/alexYuin/p/12773428.html
Copyright © 2011-2022 走看看