Linux
文章平均质量分 53
bad_good_man
这个作者很懒,什么都没留下…
展开
-
pow函数gcc编译提示 undefined reference to `power' 的解决办法
今天写了一个程序,用了pow函数,头文件中也包含了文件,但是在编译时,gcc -o ippanduan ippanduan.c 一直提示如下错误:/tmp/ccARJLRg.o: In function `main':ippanduan.c:(.text+0x180): undefined reference to `power'collect2: error: ld原创 2015-08-27 10:09:25 · 21748 阅读 · 6 评论 -
Makefile进阶——自动化变量
如何书写一个命令来完成从不同的依赖文件生成相应的目标?因为在每一次的对模式规则的解析时,都会是不同的目标和依赖文件。自动化变量就是完成这个功能的。所谓自动化变量,就是这种变量会把模式中所定义的一系列的文件自动地挨个取出,直至所有的符合模式的文件都取完了。这种自动化变量只应出现在规则的命令中。下面是所有的自动化变量及其说明:$@表示规则中的目标文件集。在模式规原创 2015-11-27 16:23:38 · 812 阅读 · 0 评论 -
Makefile的obj-y和obj-m语句
有人问我在看uboot源码时,看到如下的Makefile语句怎么理解: obj-y += api.o api_display.o api_net.oapi_storage.oobj-$(CONFIG_ARM) += api_platform-arm.oobj-$(CONFIG_PPC) += api_platform-powerpc.o在此解释如下:obj-y原创 2015-11-27 15:25:43 · 8059 阅读 · 0 评论 -
Linux编程——makefile编写技巧大全
1. Makefile 简介本来想自己写一些makefile的东西,但是在网上查资料时发现这篇文章,感觉写得很详细,排版也很不错,现转载过来。特此声明。原文地址:http://www.cnblogs.com/wang_yb/p/3990952.htmlMakefile 是和 make 命令一起配合使用的.很多大型项目的编译都是通过 Makefil转载 2015-11-24 14:47:57 · 5297 阅读 · 0 评论 -
嵌入式系统的性能优化
嵌入式Linux系统的性能优化研究嵌入式系统的启动速度因设备的性能和代码的质量而异,但总体而言,从消费者的角度考虑,系统的启动速度肯定是越快越好。尤其是某些行业的设备,如监控行业,如果设备的启动时间过长,那么很可能被不法分子利用,造成恶劣的影响。因此,对嵌入式系统进行性能优化,加快设备的启动时间为项目后期必须进行的一项工作。需要注意的是:嵌入式Linux设备的优化不是一蹴而就的,而是一个不断优化,不原创 2015-12-09 20:41:04 · 7082 阅读 · 0 评论 -
Linux编程——文件操作
文件在Linux系统中是一个广泛的概念,Linux将所有的硬件设备当作文件来处理,因此了解文件操作是十分重要的。(一)文件和目录操作1.stat 获取文件属性 #include #include #include int stat(const char *filename,struct stat *buf);原创 2015-11-13 19:47:57 · 2747 阅读 · 0 评论 -
Linux编程——进程与线程
(一) 理论部分1.进程与线程进程进程(process)是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.进程本质上是正在执行的一个程序,是容纳运行一个程序所需要所有信息的容器。与一个进程相关的是进程的地址空间(address space)和进程表(process table)。进程的地址空间包括代码段、数据段、堆栈段。下面画出了原创 2015-11-13 19:39:31 · 2467 阅读 · 0 评论 -
Linux编程——网络编程
1.概述网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端.网络程序是先有服务器程序启动,等待客户端的程序运行并建立连接.一般的来说是服务端的程序在一个端口上监听,直到有一个客户端的程序发来了请求. 2.网络编程的实现Linux 系统是通过提供套接字(socket)来进行网络编程的.网络程序通过 socket 和其它几个函数的调用,原创 2015-11-13 19:26:13 · 2496 阅读 · 0 评论 -
assert函数浅析
assert函数为编程中常用的函数,但是有些程序员仍然不熟悉,再次小结下,以方便大家查阅。原创 2015-10-14 13:57:41 · 6654 阅读 · 0 评论 -
程序猿白话之——const的妙用
const的一件奇妙的事情是,它允许你指定一个语义约束(即“不可被改动的对象”),而编译器会强制实施这项约束。它允许你告诉编译器和其他程序员某值应该保持不变。const多才多艺,它可以用来修饰常量、文件、函数或者区块作用域中被声明为static的对象。原创 2015-10-14 13:48:07 · 3999 阅读 · 0 评论 -
Linux编程——静态库和动态库
1 库的概念库是一种可执行代码的二进制文件,可以被操作系统载入内存执行。2 库的分类库可以分为两种:静态库和动态库静态库:静态库就是一些目标文件的集合,以.a结尾。静态库在程序链接的时候使用,链接器会将程序中使用到函数的代码从库文件中拷贝到应用程序中。一旦链接完成,在执行程序的时候就不需要静态库了。由于每个使用静态库的应用程序都需要拷贝所用函数的代码,所以静态链接的文件会比较大。原创 2015-11-13 19:16:42 · 3730 阅读 · 1 评论 -
Linux编程——信号
1 信号概述信号:就是软件中断。信号提供了一种处理异步事件的方法:终端用户键入中断键,则会通过信号机构停止一个程序。所以,信号可以说是进程控制的一部分。信号的名字都以三个字母开头:SIG信号是异步事件的经典实例。 2 信号的产生条件l 当用户按某些终端键时,产生信号。l 硬件异常产生信号:除数为0、无效的存储访问等等。l 进程用kill函数可将信号发送给另一个进程原创 2015-11-13 19:08:28 · 2353 阅读 · 0 评论 -
ioctl函数
ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。它的参数个数如下:int ioctl(int fd, int cmd, …);其中fd就是用户程序打开设备时使用open函数返回的文件标示符,cmd就是用户程序对设备的控制命令,至于后面的省略号,那是一些补充参数,一般最多一个,有或没有是和c原创 2015-09-22 10:11:09 · 4183 阅读 · 0 评论 -
程序员必备知识——fork和exec函数详解
在学习UNIX编程时,必须要学习的一个函数为fork函数。fork函数也为面试中必定要问的一个问题,尤其是在BAT的面试中,fork函数相关问题更为面试笔试必考知识点。究其原因:该函数为UNIX中派生新进程的唯一方法。不熟悉fork,就不可能熟悉多线程编程。因此掌握好fork函数,为程序员和准程序员必备技能。1 fork函数原型#includepid_t fork(void);原创 2015-10-23 18:59:22 · 21501 阅读 · 1 评论 -
uboot源码及启动过程分析
一 uboot源码下载地址:ftp://ftp.denx.de/pub/u-boot/在此网站可以下载到最新的uboot,同时也可以根据需要下载各个不同时期版本的uboot。二 uboot源码整体框架源码解压以后,我们可以看到以下的文件和文件夹:.├── api├── arch├── board├── common├── configs├── disk转载 2015-11-27 15:16:28 · 3445 阅读 · 0 评论