关于makefile的一些学习经验

   近来一周都在折腾在linux下给一个系统写一个makefile,由于对makefile没啥经验,就把过程中遇到的学到的都记录下来。

  一:在makefile里面,很多命令都在命令前加“@”,这表示应用shell的脚本命令(例如:@echo),因为make缺少很多一些shell才有的命令。

二:$(MAKE) -C $(XML_PATH)的意思是进入XML-Path目录执行相应的makefile。

三:ar指令用于生成linux下的静态库文件(.a)。

     .o.a.so文件都是Linux下的程序函数库,即编译好的可以供其他程序使用的代码和数据。

优点:程序模块化,容易重新编译,方便升级。

分类:静态函数库(对应.a文件)、共享函数库(对应.so文件,类似于Windowsdll文件)、动态加载函数库(对应.o文件,相当于Windows里的.obj文件)

四:linux下设置环境变量:export AMDAPPSDK="/opt/AMDAPPSDK-3.0-0-Beta/".

五:malloc、calloc、realloc和alloca的区别

   1:malloc是标准的在堆中开辟新的空间,即动态内存分配,例如(char* p=(char*)malloc(sizeof(char))),使用后需要free(p)来释放内存。

    2:calloc也是开辟动态内存空间,例如(char* p=(char*)malloc(10,sizeof(char))),但是calloc会把分配的内存初始化为为0,。使用后需要用free(p)来释放内存。

    3:realloc对指针空间做重新定义,新的空间必须大于原来的空间

  4:alloca是最特殊的开辟栈空间方法,优点是当离开调用这个函数的时候,栈所分配的空间会自动释放(也就是free)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值