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.

  • 相关阅读:
    为函数的参数指定类型
    装饰器函数导致的原函数的元数据被替代--保存元数据
    ssm单项目整合
    security权限控制
    springAOP学习笔记
    springIOC学习笔记
    springDataJpa学习笔记
    springmvc学习笔记
    原生mybaits学习笔记
    java反射和注解
  • 原文地址:https://www.cnblogs.com/alexYuin/p/12773428.html
Copyright © 2011-2022 走看看