GNU make使用(一)】的更多相关文章

C 语言在 Linux 系统中的重要性自然是无与伦比.不可替代,所以我写 Linux 江湖系列不可能不提 C 语言.C 语言是我的启蒙语言,感谢 C 语言带领我进入了程序世界.虽然现在不靠它吃饭,但是仍免不了经常和它打交道,特别是在 Linux 系统下. Linux 系统中普遍使用的是 GNU-C,这里有一份Gnu-C语言手册.pdf.The GNU C Reference Manual 的主页在这里:http://www.gnu.org/software/gnu-c-manual/.C 语言的…
不可否认,这次的标题有点长.之所以把标题写得这么详细,主要是为了搜索引擎能够准确地把确实需要了解 GCC 生成 16 位实模式代码方法的朋友带到我的博客.先说一下背景,编写能在 x86 实模式下运行的 16 位代码,这个话题确实有点复古,所以能找到的资料也相应较少.要运行 x86 实模式的程序,目前我知道的只有两种方式,一种是使用 DOS 系统,另一种是把它写成引导扇区的代码,在系统启动时直接运行.很显然,许多讲自己实现操作系统的书籍都会讲到 x86 实模式,也只有自己实现操作系统引导的朋友需要…
在我该系列的之前的所有随笔中,都是采用 Linux 发行版自带的包管理工具(如 apt-get.yum 等)进行软件的安装和卸载,从来没有向大家展示使用源代码自行编译安装软件的方法.但是长期混迹于 Unix/Linux 世界的童鞋们都知道,从源代码自行编译安装软件并不是那么的难,一般都是这样三个步骤: configure make make install 之所以能够把源代码的构建管理得如此简单,这得益于 Gnu 的 Autotools 工具链.在上面的三个命令中,configure 是一个脚本…
用过 Bash 命令行的一定知道,Bash 有几个特性: TAB 键可以用来命令补全 ↑ 或 ↓ 键可以用来快速输入历史命令 还有一些交互式行编辑快捷键: C-A / C-E 将光标移到行首/行尾 C-B / C-F 将光标向左/向右移动一个位置 C-D 删除光标下的一个字符 C-K 删除光标及光标到行尾的所有字符 C-U 删除光标到行首的所有字符 ... 同样的操作在很多交互式程序都有类似的操作,例如 ftp.gdb 等等,那么你是否想过这些是如何实现的呢?如果我们要做一个命令行下的交互式开源…
GNU Radio Radar Toolbox Install guide Change to any folder in your home directory and enter following commands in your terminal. git clone https://github.com/kit-cel/gr-radar.git // clone this repository cd gr-radar/ mkdir build // make build folder…
gnu.win32-coreutils-8.25.7z 2.7 Mb bc-1.06.tar.gz coreutils-8.25.tar.xz diffutils-3.5.tar.xz gawk-4.1.4.tar.xz grep-2.26.tar.xz patch-2.7.5.tar.xz pcre2-10.22.tar.bz2 pcre-8.39.tar.bz2 sed-4.2.2.tar.bz2 wget-1.18.tar.xz 2016-10-28 04:48 1,017,856 awk…
一.在windows平台上安装GNU环境 windows操作系统不自带GNU环境,如果需要开发跨平台的C语言程序,那么需要给windows安装GNU环境 windows下的两款GNU环境:MinGW和Cygwin MinGW:完全面向windows平台的GNU环境 环境配置(略) window下配置MinGW的eclipse开发环境:http://jingyan.baidu.com/article/380abd0a5888211d90192cd6.html Cygwin:相对于吧linux平台的…
在 Makefile 中,变量是一个名字(像是 C 语言中的宏),代表一个文本字符串(变量的值).在 Makefile 的目标.依赖.命令中引用变量的地方,变量会被它的值所取代(与 C 语言中宏引用的方式相同,因此其他版本的 make 也把变量称之为"宏").在Makefile 中变量有以下几个特征: 1. Makefile 中变量和函数的展开 (除规则命令行中的变量和函数以外),是在 make读取 makefile 文件时进行的,这里的变量包括了使用" ="定义和…
完全用GNU/Linux工作 王珢      (看完这篇博文,非常喜欢王珢的这篇博客,也我坚定了学gnu/linux的决心,并努力去按照国外的计算机思维模式去学习编程提高自己.看完这篇文章令我热血沸腾,难以入睡.也希望看到这篇博文的朋友有所收获.) "UNIX 是简单的,你不需要成为天才也能理解这种简单" 由于GNU/Linux这个词太长,下面如果没有特别指明,“Linux”就是指“GNU/Linux”. 在这个年代,恐怕没有人需要我来介绍 Linux 是什么了吧?如果你觉得“Linu…
1.Gnu/Linux是一个基于POSIX和UNIX的多用户多任务 支持多线程多CPU的类UNIX的操作系统. 继承了UNIX以网络为核心的设计思想 是性能稳定的多用户网络操作系统. 1991年10月5日Linus Torvalds在usenet的comp.os.minix新闻组中发布了第一个Linux的公告宣布诞生. 基本思想:1.一切都是文件   2.每个软件都有确定的用途 2.桌面环境 GNOME:与传统UI分道扬镳之后构建了更加现代化的桌面外观Gnome Shell 以简洁著称 KED:…
2. ,## 是与逗号合在一起用的, 表示后面有变量,则显示逗号,若后面无变量,则不显示逗号, 这种情况适用于用宏替换可变参数的函数,调用的时候可能传一个参数,或传两个参数, 这种打印语句在平台上,函数名字不一样, 如#define pr_debug(fmt, arg...) printk(fmt,##arg), 如果没有,##这种语法, 这个宏定义就要变成如下:#define pr_debug(fmt) printk(fmt)#define pr_debug(fmt, arg) printk(…
今天被@SVCHAO  勾起兴趣来了.. 有把正则表达式兴趣捡起来了,试了下notepad++基本上语法倒是没有忘记,不过如果是用在嵌入式的方案的话,似乎还是有点费劲的. 先mark一个基础语法. 单个字符匹配 采用方括号描述,例如[0135678]表示0 1 3 5 6 7 8 都可以通过该次匹配 采用方括号排除,例如[^azAZ]表示除了a z A 和Z 全部可以通过该字节匹配 允许使用-表示范围,例如[0-9a-zA-Z]表示所有数字跟字母 常用单个字符存在通用表达方式,例如\w 表示[0…
第一次接触GNU/Linux还是大四上学期实习的那两个月在window里装了 个虚拟机玩红帽的系统,那段时间稍微学了一点命令就不玩了.后来大四下学期认识了王总,装了双系统,那段时间又对linux有了进一步认识并产生了很大的 兴趣.直到上学期突然发疯把笔记本装debian8以后才完全进入linux的世界.学习真的是一个螺旋式上升的过程.下面进入正题: ---Linux的基本原则: 1.由目的单一的小程序组成,组合小程序完成复杂任务(KISS:keep it simple,stupid)2.一切皆文…
我们在网上经常可以看到c/c++开源的项目,其中很多都是使用GNU的构建系统进行配置和编译的,如果按照规范构造这些的步骤,有一定的门槛和复杂度,下文把关于auotools系列的工具和概要的流程简要汇总一下,这样我们就知道整个的构建系统是咋回事了. Autotools If you’re writing open source software that targets Unix or Linux systems, you should absolutely be using the GNU Au…
GNU C 内联汇编介绍 简介 1.很早之前就听说 C 语言能够直接内嵌汇编指令.但是之前始终没有去详细了解过.最近由于某种需求,看到了相关的 C 语言代码.也就自然去简单的学习了一下如何在 C 代码中内嵌汇编指令. asm/__asm__ 关键字 1.总的来说在 C 代码中我们通过 asm/__asm__ 关键字来告诉编译器将指定的内容当汇编指令处理.废话不多说,先看个例子: #include <stdio.h> int main(int argc, char *argv[]) { int…
命令回显 通常, make 在执行命令行之前会把要执行的命令行输出到标准输出设备.我们称之为"回显",就好像我们在 shell 环境下输入命令执行时一样. 如果规则的命令行以字符" @"开始,则 make 在执行这个命令时就不会回显这个将要被执行的命令. 如果使用make的命令行参数" -n"或" --just-print",那么make执行时只显示所要执行的命令,但不会真正的去执行这些命令.其中也包括了使用" @&…
GNU Trove (http://trove4j.sourceforge.net/) 是一个Java 集合类库.在某些场景下,Trove集合类库提供了更好的性能,而且内存使用更少.以下是Trove中跟open addressing相关的几个特性: Trove maps/sets没有使用chaining解决hash冲突,而是使用了open addressing.跟chaining相比,open addressing对hash算法的要求更高.通过TObjectHashingStrategy 接口,…
最近在调试OJ, 忙了4天多, 最后的问题是judge模块不能正常工作. judge 模块就是两个C++源文件, 它的工作是 从数据库获取用户提交的源码 测评 将测评结果写到数据库 测评部分是与数据库无关的, 我遇到的问题是C++和数据库无法建立连接. 这个问题根源于我用的是LAMPP的集成版, 而文档里是分别安装Apace, MySQL, 和PHP的. 这两种方式下, 某些库文件, 比如mysql.h和libmysqlclient.so, 的位置是不同的, 因而需要调整的有 源码 makefi…
导读 最近,Bryce Harrington很高兴地宣布了“面向GNU/Linux操作系统的Wayland 1.12.0显示服务已正式发布”的消息.与它一同到来的,还有Weston 1.12.0合成器. Wayland 1.12和Weston 1.12的开发工作早已开始,一个月前就就想公测者们放出了首个Alpha编译版本.最终编译版本中,加入了许多可以在GNU/Linux发行版上安装的新功能. 在测试了多个开发编译版本之后,它们并没有引入其它大功能,主要集中在小bug的修复方面,但眼尖的人们肯定…
导读 GNU Khata是一个会计工具. 或者,我应该说成是一系列的会计工具集合,它就像经济管理方面的Evernote一样.它的应用是如此之广,以至于它不但可以用于个人的财务管理,也可以用于大型公司的管理,从店铺存货管理到税率计算,都可以有效处理. 有个有趣的地方,Khata 这个词在印度或者是其他的印度语国家中意味着账户,所以这个会计软件叫做 GNU Khata. 安装 互联网上有很多关于旧的 Web 版本的 Khata 安装介绍.现在,GNU Khata 只能用在 Debian/Ubuntu…
makefile的核心 targets : prerequisites ; commands...   //不分行的情况 targets : prerequisites                        //分行的情况 commands targets : target模式 : prereq模式 ; commands  //静态模式  不分行的情况 targets : target模式 : prereq模式                     //静态模式  分行的情况 comm…
作者:冯老师,华清远见嵌入式学院讲师. 译自“Using as The GNU Assembler January 1994”. 参考Tornado随机文档“GNU Toolkit User's Guide". GNU Assembler 80386 Dependent Features ■ AT&T语法 vs. Intel语法 为了保持和gcc的输出的兼容性,as支持AT&T System V/386汇编语法,它和Intel语法有相当大的差别.强调这个是因为几乎所有的80386…
GNU计划,又称革奴计划,是由Richard Stallman在1983年9月27日公开发起的.它的目标是创建一套完全自由的操作系统.它在编写linux的时候自己制作了一个标准成为 GNU C标准.ANSI 美国国家标准协会,它对C做的标准ANSI C标准后来被国际标准协会接收成为 标准C 所以 ANSI C 和标准C是一个概念,总体来说现在linux也支持标准C,以后标准C可以跨平台,而GUN c 一般只在linux c下应用. 具体博客地址:http://www.cnblogs.com/ba…
以下内容翻译自https://pthree.org/2012/04/17/install-zfs-on-debian-gnulinux/,并附有原文,由于是第一次翻译,如有任何翻译不恰当之处,欢迎指出. UPDATE (May 06, 2012): I apologize for mentioning it supports encryption. Pool version 28 is the latest source that the Free Software community has.…
http://advancedlinuxprogramming.com提供了本书电子版的免费下载. 1 与执行环境交互 关于参数 C语言程序的main()函数使用两个参数和执行环境交互--(int)argc和(char*)argv[].前者表示所执行命令的参数个数,后者包含了所执行命令的各个参数.(char*)argv[]的第一个元素为程序本身的位置,其后为程序的参数. 看例子: #include <stdio.h> int main(int argc, char* argv[]) { pri…
-------------------------------------------------------------------------------------- GNU M4介绍: GNU M4 是一个传统Unix宏处理器的实现.它主要兼容 SVR4,尽管它有一些扩展(例如,处理超过9个位置参数的宏).GNU M4 同样有内置的函数用来包含文件,运行shell命令,做算术运算,等等. GNU M4 在某种意义上来说是一个宏处理器,它复制输入到扩展的宏后输出.宏既不是内置也不是用户定义…
标准C库Glibc发布2.18正式版.2013-08-12 上一个版本是2012-12-25的2.17. 详细改进:Version 2.18 * The following bugs are resolved with this release: 2546, 2560, 5159, 6809, 7006, 10060, 10062, 10283, 10357, 10686, 11120,   11561, 12310, 12387, 12492, 12515, 12723, 13550, 138…
网上很多地方都说Tmux比GNU Screen要好用,不过无意间看到这篇Switching from tmux to GNU Screen之后,我发现GNU Screen的窗口/区域概念更好,至少是更适合我(虽然相对Tmux有不少小缺点). 优点1: GNU Screen的窗口/区域/布局概念更适合某些场景 Tmux里面的窗口概念是: 程序是跑在pane里面的,每个window可切分成多个pane,一般我们会并行开多个window.这样每个window多半用于不同的事情.这种方式要把一个wind…
汇编源程序一般用于系统最基本的初始化:初始化堆栈指针.设置页表.操作 ARM的协处理器等.这些初始化工作完成后就可以跳转到C代码main函数中执行. 1.  GNU汇编语言语句格式 任何Linux汇编行都是如下结构:[<label>:][<instruction or directive or pseudo-instruction>} @comment l         instruction为指令 l         directive为伪操作 l         pseudo…
http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html constructor destructor constructor (priority) destructor (priority) The constructor attribute causes the function to be called automatically before execution enters main (). Similarly, the de…