
linux
wuxinyanzi
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
如何自己编写Makefile
相信很多朋友都有过这样的经历,看着开源项目中好几页的makefile文件,不知所云。在日常学习和工作中,也有意无意的去回避makefile,能改就不写,能用ide就用ide。其实makefile并没有想象的那么难写,只要你明白了其中的原理,自己实践几次。你也可以自己写makefile,让别人对你头来羡慕的目光。 下面本人介绍一下自己的学习成果,初学阶段,欢迎大家多多指正。 简单的说,m转载 2013-10-14 11:22:02 · 530 阅读 · 0 评论 -
跟我一起写 Makefile(七) 转自http://blog.youkuaiyun.com/haoel/article/details/2892
使用变量 ———— 在Makefile中的定义的变量,就像是C/C++语言中的宏一样,他代表了一个文本字串,在Makefile中执行的时候其会自动原模原样地展开在所使用的地方。其与C/C++所不同的是,你可以在Makefile中改变其值。在Makefile中,变量可以使用在“目标”,“依赖目标”,“命令”或是Makefile的其它部分中。 变量的命名字可以包含字符、数字,下划线(可以转载 2013-12-16 15:05:17 · 641 阅读 · 0 评论 -
跟我一起写 Makefile(八) 转自http://blog.youkuaiyun.com/haoel/article/details/2893
六、多行变量 还有一种设置变量值的方法是使用define关键字。使用define关键字设置变量的值可以有换行,这有利于定义一系列的命令(前面我们讲过“命令包”的技术就是利用这个关键字)。 define指示符后面跟的是变量的名字,而重起一行定义变量的值,定义是以endef关键字结束。其工作方式和“=”操作符一样。变量的值可以包含函数、命令、文字,或是其它变量。因为命令需要以[Tab]键转载 2013-12-16 15:06:04 · 543 阅读 · 0 评论 -
跟我一起写 Makefile(九) 转自http://blog.youkuaiyun.com/haoel/article/details/2894
使用函数 ———— 在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能。make所支持的函数也不算很多,不过已经足够我们的操作了。函数调用后,函数的返回值可以当做变量来使用。 一、函数的调用语法 函数调用,很像变量的使用,也是以“$”来标识的,其语法如下: $( ) 或是 ${ } 这里,就是函数转载 2013-12-16 15:06:49 · 644 阅读 · 0 评论 -
跟我一起写 Makefile(十) 转自http://blog.youkuaiyun.com/haoel/article/details/2895
四、foreach 函数 foreach函数和别的函数非常的不一样。因为这个函数是用来做循环用的,Makefile中的foreach函数几乎是仿照于Unix标准Shell(/bin/sh)中的for语句,或是C-Shell(/bin/csh)中的foreach语句而构建的。它的语法是: $(foreach ,,) 这个函数的意思是,把参数中的转载 2013-12-16 15:07:50 · 704 阅读 · 0 评论 -
跟我一起写 Makefile(十一) http://blog.youkuaiyun.com/haoel/article/details/2896
make 的运行 —————— 一般来说,最简单的就是直接在命令行下输入make命令,make命令会找当前目录的makefile来执行,一切都是自动的。但也有时你也许只想让make重编译某些文件,而不是整个工程,而又有的时候你有几套编译规则,你想在不同的时候使用不同的编译规则,等等。本章节就是讲述如何使用make命令的。 一、make的退出码 make命令执行后有三个退出码:转载 2013-12-16 15:08:23 · 551 阅读 · 0 评论 -
跟我一起写 Makefile(十二) 转自http://blog.youkuaiyun.com/haoel/article/details/2897
隐含规则 ———— 在我们使用Makefile时,有一些我们会经常使用,而且使用频率非常高的东西,比如,我们编译C/C++的源程序为中间目标文件(Unix下是[.o]文件,Windows下是[.obj]文件)。本章讲述的就是一些在Makefile中的“隐含的”,早先约定了的,不需要我们再写出来的规则。 “隐含规则”也就是一种惯例,make会按照这种“惯例”心照不喧地来运行,那怕我们的转载 2013-12-16 15:10:09 · 748 阅读 · 0 评论 -
跟我一起写 Makefile(十三) 转自http://blog.youkuaiyun.com/haoel/article/details/2898
五、定义模式规则 你可以使用模式规则来定义一个隐含规则。一个模式规则就好像一个一般的规则,只是在规则中,目标的定义需要有"%"字符。"%"的意思是表示一个或多个任意字符。在依赖目标中同样可以使用"%",只是依赖目标中的"%"的取值,取决于其目标。 有一点需要注意的是,"%"的展开发生在变量和函数的展开之后,变量和函数的展开发生在make载入Makefile时,而模式规则中的"%"则发生转载 2013-12-16 15:10:57 · 795 阅读 · 0 评论 -
ranlib的作用
更新静态库的符号索引表 本小节的内容相对简单。前边提到过,静态库文件需要使用“ar”来创建和维护。当给静态库增建一个成员时(加入一个.o文件到静态库中),“ar”可直接 将需要增加的.o文件简单的追加到静态库的末尾。之后当我们使用这个库进行连接生成可执行文件时,链接程序“ld”却提示错误,这可能是:主程序使用了之 前加入到库中的.o文件中定义的一个函数或者全局变量,但连接程序无法找到这个函转载 2013-12-27 14:35:21 · 488 阅读 · 0 评论 -
linux ar命令
当我们的程序中有经常使用的模块,而且这种模块在其他程序中也会用到,这时按照软件重用的思想,我们应该将它们生成库,使得以后编程可以减少开发代码量。这里介绍命令ar,用来对库操作。 1.ar基本用法 ar命令可以用来创建、修改库,也可以从库中提出单个模块。库是一单独的文件,里面包含了按照特定的结构组织起来的其它的一些文件(称做此库文件的member)。原始文件的内容、模式、时间戳、属主、组等转载 2013-12-27 14:22:28 · 554 阅读 · 0 评论 -
Linux环境下通过ODBC访问MSSql Server
Linux环境下通过ODBC访问MSSql Server 为了解决Linux系统连接MSSql Server的问题,微软为Linux系统提供了连接MSSql Server的ODBC官方驱动。通过官方驱动,Linux程序可以方便地对MSSql Server进行访问。 官网提供了三个版本的驱动,分别用于以下发行版的Linux系统: 64bit Red Hat En转载 2017-06-06 09:05:31 · 6208 阅读 · 0 评论 -
跟我一起写 Makefile(六) 转自http://blog.youkuaiyun.com/haoel/article/details/2891
书写命令 ———— 每条规则中的命令和操作系统Shell的命令行是一致的。make会一按顺序一条一条的执行命令,每条命令的开头必须以[Tab]键开头,除非,命令是紧跟在依赖规则后面的分号后的。在命令行之间中的空格或是空行会被忽略,但是如果该空格或空行是以Tab键开头的,那么make会认为其是一个空命令。 我们在UNIX下可能会使用不同的Shell,但是make的命令默认是被“/bin转载 2013-12-16 15:04:18 · 740 阅读 · 0 评论 -
跟我一起写 Makefile(四) 转自http://blog.youkuaiyun.com/haoel/article/details/2889
书写规则 ———— 规则包含两个部分,一个是依赖关系,一个是生成目标的方法。 在Makefile中,规则的顺序是很重要的,因为,Makefile中只应该有一个最终目标,其它的目标都是被这个目标所连带出来的,所以一定要让make知道你的最终目标是什么。一般来说,定义在Makefile中的目标可能会有很多,但是第一条规则中的目标将被确立为最终的目标。如果第一条规则中的目标有很多个,那么,转载 2013-12-16 15:02:12 · 518 阅读 · 0 评论 -
跟我一起写 Makefile(三) 转自http://blog.youkuaiyun.com/haoel/article/details/2888
Makefile 总述 ——————— 一、Makefile里有什么? Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。 1、显式规则。显式规则说明了,如何生成一个或多的的目标文件。这是由Makefile的书写者明显指出,要生成的文件,文件的依赖文件,生成的命令。 2、隐晦规则。由于我们的make有自动推导的功能,所以隐晦的规则可以让我转载 2013-12-16 15:00:01 · 641 阅读 · 0 评论 -
Linux下转换字符集(UTF8转换)
今天在Linux 下使用 Iconv 命令转换一个UTF8文件时,总是转换不成功。提示: iconv: 未知 0 处的非法输入序列 后来使用 man iconv 查看,还是没发现异常,因为命令格式都是正确的。后来找了许多资料才知道原因,如下: a. 在做编码转换的时候,如果你的源格式设定为 GB2312 的话,而且在转换成 UTF-8 的时候,发现程序会报“illegal inp转载 2013-10-16 14:41:22 · 31466 阅读 · 0 评论 -
linux 判断文件是否存在的access()方法与示例
access函数功能描述:检查调用进程是否可以对指定的文件执行某种操作。用法:#include#includeintaccess(constchar*path... access函数 功能描述: [喝小酒的网摘]http://blog.const.net.cn/a/17126.htm 检查调用进程是否可以对指定的文件执行某种操作。 用法:转载 2013-10-30 08:29:57 · 2119 阅读 · 0 评论 -
Ubuntu下配置samba实现文件夹共享
一. samba的安装: sudo apt-get insall samba sudo apt-get install smbfs 二. 创建共享目录:转载 2013-11-06 09:14:22 · 360 阅读 · 0 评论 -
Ubuntu下配置samba实现文件夹共享
一. samba的安装: sudo apt-get insall samba sudo apt-get install smbfs 二. 创建共享目录: mkdir /home/phinecos/share sodu chmod 777 /home/phinecos/share 三. 创建Samba配置文件: 1. 保存现有的配置文件 sudo cp /etc/samba/转载 2013-11-06 09:15:40 · 392 阅读 · 0 评论 -
Ubuntu NFS 安装与配置
一、NFS安装 $ sudo apt-get install nfs-kernel-server nfs-common portmap 二、NFS配置 2.1 配置/etc/exports文件 $ sudo vim /etc/exports 在文件最后加入如下内容: {{ /rootnfs *(rw,sync,no_root_squash) }}转载 2013-11-07 15:06:05 · 430 阅读 · 0 评论 -
valgrind 的使用简介
一 valgrind是什么? Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合。Valgrind由内核(core)以及基于内核的其他调试工具组成。内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务给其他工具;而其他工具则类似于插件 (plug-in),利用内核提供的服务完成各种特定的内存调试任务。Valgrind的体系结构转载 2013-11-07 17:38:58 · 573 阅读 · 0 评论 -
跟我一起写 Makefile(五) 转自http://blog.youkuaiyun.com/haoel/article/details/2890
六、多目标 Makefile的规则中的目标可以不止一个,其支持多目标,有可能我们的多个目标同时依赖于一个文件,并且其生成的命令大体类似。于是我们就能把其合并起来。当然,多个目标的生成规则的执行命令是同一个,这可能会可我们带来麻烦,不过好在我们的可以使用一个自动化变量“$@”(关于自动化变量,将在后面讲述),这个变量表示着目前规则中所有的目标的集合,这样说可能很抽象,还是看一个例子吧。转载 2013-12-16 15:03:14 · 756 阅读 · 0 评论 -
跟我一起写 Makefile(一) 转自http://blog.youkuaiyun.com/haoel/article/details/2886
跟我一起写 Makefile 陈皓 概述 —— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软转载 2013-12-16 14:53:25 · 1099 阅读 · 0 评论 -
跟我一起写 Makefile(十四) http://blog.youkuaiyun.com/haoel/article/details/2899
使用make更新函数库文件 ——————————— 函数库文件也就是对Object文件(程序编译的中间文件)的打包文件。在Unix下,一般是由命令"ar"来完成打包工作。 一、函数库文件的成员 一个函数库文件由多个文件组成。你可以以如下格式指定函数库文件及其组成: archive(member) 这个不是一个命令,而一个目标和依赖的定义。一般来说,这种用法基本上就是为了"ar"转载 2013-12-16 15:11:55 · 626 阅读 · 0 评论 -
跟我一起写 Makefile(二) 转自http://blog.youkuaiyun.com/haoel/article/details/2887
三、make是如何工作的 在默认的方式下,也就是我们只输入make命令。那么, 1、make会在当前目录下找名字叫“Makefile”或“makefile”的文件。 2、如果找到,它会找文件中的第一个目标文件(target),在上面的例子中,他会找到“edit”这个文件,并把这个文件作为最终的目标文件。 3、如果edit文件不存在,或是edit所依赖的后面的转载 2013-12-16 14:56:29 · 1049 阅读 · 0 评论 -
windows程序转linux遇到的坑
1、socket-> select函数,第一个参数设置方式不同。 2、socket-> setsockopt SO_SNDBUF | SO_RCVBUF,设置收发超时的参数不同 3、wchar_t在windows下占2个字节,在linux下占4个字节。 4、p2p->index时间戳的获取不同。原创 2017-06-02 17:50:14 · 1595 阅读 · 0 评论