Makefile自定义函数 / pushd,popd / ifneq / findstring / camke内置变量

①Makefile 自定义函数

1.自定义函数编写

自定义函数一般上是命令的集合

define func1
@echo "func name is $(0)\n"
@echo "the first param is $(1)"
endef
  • 通过define定义函数
  • $(0)是函数名,$(1)是第一个变量

2.函数调用

  • 预定义的call函数在调用时将参数传递给多行变量
  • 自定义函数是call函数的实参,并在call中被执行
$(call func1,param1)

结果:

func name is func1

the first param is param1

②pushd,popd目录栈

pushd的 功能是创建一个目录栈,你可以把你目前常见的几个目录压入栈中,并可以迅速地进行切换。

通俗来说就是把现在常用的几个路径添加到目录列表中,并可以通过 dirs -v查看,然后通过 pushd +n 进行切换

pushd 路径 #将路径添加到目录栈中,并且可以重复

dirs -v    #查看目录栈下有哪些目录

pushd +n   #切换到n所代表的路径

Makefile自定义函数 / pushd,popd / ifneq / findstring / camke内置变量_第1张图片

 popd就是删除目录栈里面的路径

popd  #删除当前目录,并跳转到目录栈中下一目录

popd +n #删除目录栈中n对应的目录

Makefile自定义函数 / pushd,popd / ifneq / findstring / camke内置变量_第2张图片

③ifneq ($(findstring  in,find),)

$(findstring  in,find):检查 find 中是否含有 in ,若含有则返回find。若不含有则返回空。

 ifneq(param1,param2)比较两个参数是否相等。

 ④cmake内置变量

cmake $(CURRENT_DIR)/$(PKG_NAME)/ \
			-DCMAKE_C_COMPILER=$(RK_APP_CROSS)-gcc \
			-DCMAKE_CXX_COMPILER=$(RK_APP_CROSS)-g++ \
			-DCMAKE_INSTALL_PREFIX="$(CURRENT_DIR)/$(PKG_BIN)" \
			-DCMAKE_BUILD_TYPE=Release \
			-DCMAKE_COLOR_MAKEFILE=OFF \
			-DCMAKE_SYSTEM_NAME=Linux \
			$(RK_RKIPC_CONFIG) \
			$(PKG_CONF_OPTS) ;\
			make -j$(RK_APP_JOBS) || exit -1; \
			make install; \

cmake命令内置变量及实例讲解_yuyuyuyuyuyuyu...的博客-CSDN博客_cmake 设置变量CMake一、CMake简介CMake是一个开源、跨平台的工具家族,旨在构建、测试和打包软件。CMake用于使用简单的平台和编译器独立的配置文件来控制软件编译过程,并生成可以在您选择的编译器环境中使用的本地makefile和工作区。该CMake工具套件是由Kitware创建的,以满足对开源项目(如ITK和VTK)的强大、跨平台构建环境的需求。——https://cmake.org/二、CMake安装及命令1、Linux下的CMake安装使用cmake –version命令后查看是否有相关信息,https://blog.csdn.net/qq_37735986/article/details/122217646?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165329764716782390574562%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165329764716782390574562&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-122217646-null-null.142%5Ev10%5Econtrol,157%5Ev5%5Enew_style&utm_term=cmake%E5%86%85%E7%BD%AE%E5%8F%98%E9%87%8F&spm=1018.2226.3001.4187

你可能感兴趣的:(Linux嵌入式,bash,开发语言)