程序开发
js0huang
这个作者很懒,什么都没留下…
展开
-
如何打Patch
在团队开发的过程中,经常需要生成patch,或者打上别人提供的patch,那么一般情况是如何操作的呢。首先生成patch需要有两个工程,一个修改前的A工程,一个修改后的B工程。使用linux命令diff就可以生成patch了。格式如下:diff -Naur path/to/A_Project path/to/B_Project > Project.patch-N 选项确保补丁文件将...转载 2018-10-17 11:02:47 · 7325 阅读 · 0 评论 -
diff.gz 文件解压并patch源码
解压并解包xxxx.tar.gz文件原创 2018-03-12 15:12:59 · 2314 阅读 · 0 评论 -
例解 autoconf 和 automake 生成 Makefile 文件
转自https://www.ibm.com/developerworks/cn/linux/l-makefile/引子无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或 make install。利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百转载 2018-03-26 14:30:47 · 148 阅读 · 0 评论 -
使用 GNU Libtool 创建库
转自 https://www.ibm.com/developerworks/cn/aix/library/1007_wuxh_libtool/介绍在不同的系统中建立动态链接库的方法有很大的差别,这主要是因为每个系统对动态链接库的看法和实现并不相同,以及编译器对动态链接库支持的选项也不太一样。对于开发人员,如果尝试将使用动态库的软件在这些系统之间移植,需要参考枯涩难懂的系统手册,以及修改相应的 Ma...转载 2018-03-20 20:04:35 · 228 阅读 · 0 评论 -
pkg-config 用法
转自 http://blog.csdn.net/luotuo44/article/details/24836901我们在用第三方库的时候,经常会用到pkg-config这个东西来编译程序。那pkg-config究竟是什么呢?本博文简单地说一下。 pkgconfig有什么用: 大家应该都知道用第三方库,就少不了要使用到第三方的头文件和库文件。我们在编译、链接的时候,必须要指定这些头文件...转载 2018-03-20 19:54:41 · 3962 阅读 · 0 评论 -
LD_LIBRARY_PATH环境变量设置及Linux动态库查找方法
转自:http://james23dier.iteye.com/blog/763274 略有改动在linux下的编程,毫无疑问的迟早都要用到LD_LIBRARY_PATH这个环境变量,不过这个环境变量是基于shell的,也就是说只有在当前设置了的shell里才会有作用,因此每次打开新的shell运行程序不停地设置LD_LIBRARY_PATH,是一件非常麻烦的事情,所以我们就会想有不有什么一劳...转载 2018-03-06 14:25:50 · 8167 阅读 · 0 评论 -
C++ Primer 学习记录
1. 变量和基本类型初始化不等于赋值,初始化是建变量并赋予初始值,但是赋值是擦出对象的值并使用新 值代替。注意C++拷贝构造函数和复制构造函数。 对unsigned类型赋值,编译器会调整越界值使其满足要求。而对有符号型数,则依据编 译器不同而不同 除非特别说明,在全局作用域声明的const变量是定义该对象的文件的局部变量,如果 要在其他文件中可以访问,必须如下定义 externconstint j...原创 2018-03-03 12:58:14 · 218 阅读 · 0 评论 -
VC++深入详解——19章动态链接库
章19 动态链接库dll源文件中的函数要使用 _declspec(dllexport) 导出。同时,在引用该dll中的函数时,要 使用_declspec(dllimport)。在调用dll的工程中必须加载该 dll的引入库文件(.lib文件),同时,要将dll文件放在工程可 以引用到的目录中。可以编写dll的 .h文件。然后将函数的导出声明加入其中提供给客户端使用。可以导出一个类,...原创 2018-03-04 11:15:52 · 237 阅读 · 0 评论 -
C语言中怎么在main函数开始前执行函数
在gcc中,可以使用attribute关键字,声明constructor和destructor,代码如下:#include <stdio.h>__attribute((constructor)) void before_main(){ printf("%s/n",__FUNCTION__);}__attribute((destructor)) void after_main(){ pr原创 2018-03-04 11:10:56 · 6623 阅读 · 2 评论 -
64位传参
64位汇编当参数少于7个时, 参数从左到右放入寄存器: rdi, rsi, rdx, rcx, r8, r9。当参数为7个以上时, 前 6 个与前面一样, 但后面的依次从 “右向左” 放入栈中,即和32位汇编一样。参数个数大于 7 个的时候H(a, b, c, d, e, f, g, h);a->%rdi, b->%rsi, c->%rdx, d->%rcx, e->...原创 2018-03-08 13:26:51 · 3074 阅读 · 0 评论 -
折腾gcc/g++链接时.o文件及库的顺序问题
转自 http://www.cnblogs.com/OCaml/archive/2012/06/18/2554086.html折腾gcc/g++链接时.o文件及库的顺序问题Table of Contents1 gcc/g++链接时.o文件以及库的顺序问题1.1 写在前面1.2 几个名词1.3 技术铺垫1.3.1 编译动态库时的符号解析1.3.2 linux下查看一个可执行文件或动态库依赖哪些动态库...转载 2018-03-14 20:32:25 · 3132 阅读 · 1 评论 -
静态编程语言、动态编程语言以及静态类型语言和动态类型语言
转自http://haohetao.iteye.com/blog/589070定义 通常我们所说的动态语言、静态语言指 动态类型语言(Dynamically Typed Language)和 静态类型语言Statically Typed Language)。还有一个 Dynamic Programming Language (动态编程语言),静态编程语言。动态类型语言:在运转载 2013-12-09 12:11:21 · 4583 阅读 · 0 评论 -
C语言关键字 restrict 分析
restrict是c99标准引入的,它只可以用于限定和约束指针,并表明指针是访问一个数据对象的唯一且初始的方式.即它告诉编译器:所有修改该指针所指向内存中内容的操作都必须通过该指针来修改,而不能通过其它途径(其它变量或指针)来修改;这样做的好处是,能帮助编译器进行更好的优化代码,生成更有效率的汇编代码.如 int *restrict ptr, ptr 指向的内存单元只能被 ptr原创 2013-12-06 19:09:27 · 993 阅读 · 0 评论 -
C++ explicit关键字分析
C++ explicit关键字用来修饰类的构造函数,表明该构造函数是显式的,既然有"显式"那么必然就有"隐式",那么什么是显示而什么又是隐式的呢? 如果c++类的构造函数有一个参数,那么在编译的时候就会有一个缺省的转换操作:将该构造函数对应数据类型的数据转换为该类对象,如下面所示:```class MyClass { public: MyClass( int nu原创 2015-04-21 10:21:40 · 473 阅读 · 0 评论 -
为NotePad++ 配置VS 编译环境
对于很多程序员来说很多时候或许想写一个小的c或者c++算法程序或者测试程序,如果在Linux环境下,自然使用gcc和任意一款文本编辑器即可,而如果在windows环境下,不想使用笨重的VS来编程的话,可以配置NotePad的VS编译命令。 之前使用了为Notepad++配备Visual C++ 2010编译器中的方法。但是在重装了VS2012后,库目录设置一直不正...原创 2015-03-26 14:37:52 · 2809 阅读 · 0 评论 -
Windows 以及 Linux 使用文件作为程序测试输入的方法
在写程序时,很多时候bu'x原创 2014-07-07 15:46:10 · 1416 阅读 · 0 评论