应用_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 : 编驱动模块

 


 

posted @ 2021-03-11 16:55  panda_w  阅读(62)  评论(0编辑  收藏  举报