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.

  • 相关阅读:
    什么叫委托
    什么是继承
    什么叫多态
    委托的了解
    什么是数组
    工作记录之 oracle去重的三个方法
    实例分析J2ME网络编程的两种方法
    在无线J2ME设备上实现超文本传输协议
    java与C、C++进行通信的一些问题
    如何配置Wiindows live writer
  • 原文地址:https://www.cnblogs.com/alexYuin/p/12773428.html
Copyright © 2011-2022 走看看