zoukankan      html  css  js  c++  java
  • 应用_Cmake

           Cmake


    开源、跨平台的构建工具,通过编写简单的配置文件去生成本地的Makefile,独立于运行平台和编译器
    不用亲自去编写Makefile,配置文件可以直接拿到其它平台上使用,无需修改,非常方便

    
    
    # 版本
    cmake_minimum_required (VERSION 2.8)
    #工程 project (demo)              
    #设置变量
    set(PROJ_SRC_PATH ${PROJECT_SOURCE_DIR}/proj/src)
    #下一级目录 add_subdirectory(proj)            #头文件() include_directories(${PROJ_INC_PATH}) 

    #编译静态库 add_library (testFunc_static STATIC ${testFunc_static}) 
    #修改静态库名称   set_target_properties (testFunc_static PROPERTIES OUTPUT_NAME
    "Func_static")
    #链接静态库(add_executable 位置前) link_libraries(${LIBRARY_OUTPUT_PATH}
    /libFunc_static.a)
    #编译动态库 add_library (testFunc_shared SHARED ${testFunc_shared})
    #修改动态库名称 set_target_properties (testFunc_shared PROPERTIES OUTPUT_NAME
    "Func_shared")
    #链接动态库(add_executable 位置前) link_libraries(${LIBRARY_OUTPUT_PATH}
    /libFunc_shared.so)

    #可执行文件 add_executable(a.
    out ${SRC_LIST})





    #链接动态静态库(add_execuble 位置后)
    target_link_libraries (main ${TESTFUNC_LIB})

    #目录所有文件变量 aux_source_directory(.
    / SRC_LIST)


    #添加编译选项
    add_compile_options(-std=c++11 -Wall) 



    #添加控制选项





    git: https://gitlab.com/panda-wangxy/cmake



    1. 静态库:(.a、.lib)

     动态库:(.so、.dll)

    优质博客:

    https://blog.csdn.net/whahu1989/article/details/82078563

    https://www.cnblogs.com/zhoug2020/p/5904206.html

    https://www.jianshu.com/p/9d246e4071d4

    Makefile


    // 1_交叉编译工具链
    CROSS_COMPILE = arm-none-linux-gnueabi-
    CC            = $(CROSS_COMPILE)gcc 
     
     //2_指定内核当前路径
    KERNEL_DIR = /home/kernel/driover/linux-3.0.8
    CUR_DIR    = $(shell pwd)
    
    //3_指定生成的文件
    MYAPP    = app
    MODULE = drv
    
    //4_编译
    all:
    make -C $(KERNEL_DIR)   M=$(CUR_DIR) modules
    ifneq ($(MYAPP),)
    $(CC)   $(myapp)    -o $(MYAPP)
    endif 
      
     //5_清除
    clean:
    make -C $(KERNEL_DIR) M=$(CUR_DIR) clean
    rm -rf $(MYAPP)
    
    //6_拷贝
    install:
    cp *.ko $(MYAPP)  /opt/rootfs/drv
    
    //7_指定当前目录文件作为内核模块编译
    obj-m += $(MODULE).o

    obj — y : 编译进内核
    obj — : 不编译进去
    obj — m : 编驱动模块


    Stay hungry, stay foolish 待续。。。
  • 相关阅读:
    bzoj 4260REBXOR
    bzoj 1009GT考试
    cf 621E. Wet Shark and Blocks
    cf 507E. Breaking Good
    cf 766#
    bzoj 3732Network
    bzoj 4300绝世好题
    bzoj 4345[POI2016]Korale
    bzoj 4236JOIOJI
    bzoj 4237稻草人
  • 原文地址:https://www.cnblogs.com/panda-w/p/14519027.html
Copyright © 2011-2022 走看看