摘要:
一、Windows 下环境配置 为了快速入门,不建议初学者在工具上花费大量时间,可以安装整合环境 ZppServ 或 XAMPP ,这里以 ZppServ 为例。 1、下载 appserv: http://www.appservnetwork.com/ 我这里下载了 appserv-win32-2. 阅读全文
摘要:
一、命令行参数-n/--just-print/--dry-run/--recon 只显示命令,但不会执行命令,用于调试 makefile。-s/--slient/--quiet 禁止命令的显示-e/--environment-overrides 系统环境变量将覆盖 makefile 中定义的变量-f/--file 指定 makefile 文件-t/--touch 只更新目标文件的时间而不编译。-B/--always-make 重编译所有目标-C/-directory= 指定读取 makefile 的目录--debug=[=] 输出 make 调试信息,如果没有参数则为最简单的调试信息。可以为: 阅读全文
摘要:
一、简介:GDB 是GNU Debugger 的简称,是 GNU软件系统中的标准调试器。二、启动 GDBgdb 启动时,需要载入符号表文件(symbol table file)、可执行文件(executable file)、源代码文件。使用 gcc 编译程序时,使用 -g\-ggdb\-gdwarf-2 参数,生成的可执行文件内置了 gdb 调试用的符号表信息和源代码路径信息。启动 GDB 的方式有以下几种:1、gdb 默认使用 中记录的符号表信息和源代码路径信息,注意,如果源代码路径变化了,需要使用 -directory/-d 来重新指定源代码路径,否则 gdb 调试时无法 list ,此. 阅读全文
摘要:
一、获取内核转储大多数Linux发行版默认关闭内核转储功能,可使用 ulimit -c 查看,-c 表示内核转储文件的大小限制,如果为0,表示未开启。1、可设置为 ulimit -c unlimited 表示无限制,或设置为其它数值,单位是字节,立即生效。2、修改/etc/security/limi... 阅读全文
摘要:
一、简介:gcc 最初是 "GNU C Compiler" 的简称,只是当作一个 C 语言的编译器,现在已经变成了 "GNU Compiler Collection",可以编译多种语言。二、编译的四个阶段:在使用 gcc 编译程序时,编译过程可以被细分为 4 个阶段:◆预处理(Pre-Process... 阅读全文
摘要:
在 win7 64位下学习汇编,无法使用 debug 和 masm,可以利用 DosBox 这个软件。DosBox 是一个 DOS 模拟程序,由于它采用的是 SDL 库,所以可以很方便的移植到其他的平台,支持 Windows、Linux、Mac OS X、Android 、webOS等系统。1、先下... 阅读全文
摘要:
一、硬盘结构目前的存储方式基本分为磁存储、光存储和电存储几种,其中 U 盘和各种存储卡属于电存储,VCD、DVD 盘属于光存储,应用最广的是电存储,如硬盘。磁盘接口:并行接口:IDE接口、SCSI接口(SCSI 接口相当于 IDE 接口的特殊形式,效率更高)串行接口:SATA 接口、SAS 接口(S... 阅读全文
摘要:
应用层数据+TCP首部——>TCP层+IP首部——>IP层+以太网首部——>链路层=> 封装,逆向过程为分用最大传输单元又叫作 MTU:Maximum Transmission Unit。比如以太网的MTU为1500 字节,IEEE 802.3 的 MTU 为 1492 字节。当网络上的两台主机互相... 阅读全文
摘要:
shell 脚本的第一行一般为:#! /bin/shll /bin/sh 可以发现 sh 是一个指向 bash 的软连接。脚本文件一般有两种运行方式,一种是作为 sh 命令的命令行参数,另一种是将脚本作为具有可执行权限的可执行文件,对于后一种方式来说,上面的那句话就有作用了,它指定了调用哪种解释器来... 阅读全文
摘要:
vmstat是一个查看虚拟内存(Virtual Memory)使用状况的工具,使用vmstat命令可以得到关于进程、内存、内存分页、堵塞IO、traps及CPU活动的信息。vmstat 最常用的有两个数字参数,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数,如果不写就是一直采样下去。... 阅读全文
摘要:
只能在linux下使用:#include class timer{ public: timer(int _timerType = CLOCK_PROCESS_CPUTIME_ID) : timerType(_timerType) { clock... 阅读全文
摘要:
1、下载地址:https://code.google.com/p/protobuf/downloads/list安装 ./configure && make && make install2、试执行 protoc 命令,如果提示链接库错误,则执行 ldconfig3、编译 .proto 文件成 C+... 阅读全文
摘要:
1、从 python 说起def add(a, b): return a + b;print add(3, 5); #8print add(3.1, 5.1); #8.2print add("abc", "abd"); #abcabd上面使用 python 定义了一个 add 函数,用于返回两个值相加的结果。由于 python 是弱类型语言,所以在调用该函数时,可以使用各种类型,实现了在 C 语言中必须通过重载来完成的功能。在 C++ 语言中,不能像上面一样去定义一个函数,因为 C++ 也是一门强类型语言,定义函数时,必须严格... 阅读全文
摘要:
一、开发环境配置1、使用 eclipse需要下载安装Android SDK、Eclipse、ADT 插件。也可以直接下载整合好的 ADT Bundle 包,下载地址:http://developer.android.com/sdk/index.html#download解压后有 sdk 和 ecli... 阅读全文
摘要:
linux的 C 库路径为 /usr/include,可以直接查看源码,也可以通过"man 头文件名" 来学习,需要查看某个函数如 bind() ,则只需要 man 2 bind 即可。如: 定义了 int8_t、int16_t、int32_t、int64_t、uint8_t、uint16_t、ui... 阅读全文
摘要:
下载地址:http://www.cmake.org/cmake/resources/software.html步骤:1、编写 CMakeLists.txt2、cmake PATH 或 ccmake PATH (PATH 是 CMakeLists.txt 所在路径),生成 Makefile#表示注释命令由命令名加小括号加参数组成,参数之间用空格分开。其中命令名不区分大小写。 阅读全文
摘要:
堆栈辗转开解(stack-unwinding):如果一个函数中出现异常,在当前函数内即通过 try..catch 捕捉(且捕捉到)的话,可以继续往下执行;如果不捕捉(或未捕捉到)就会抛出(与通过 throw 显式抛出效果相同)到外层函数,则当前函数会终止运行,释放当前函数内的局部对象(局部对象的析构... 阅读全文
摘要:
阅读此笔记前,请先阅读 《Effective C++》第二版笔记 和 《More Effective C++》笔记这里只记录与上面笔记不同的条款,主要是 "面对对象+模板+内存管理" 三个方面1、视 C++ 为一个语言联邦可以分为 C、C with Object、Template C++、STL 四个次语言,不同次语言的高效编程守则可能不一样,比如 C 部分 pass-by-value 通常比 pass-by-reference 高效,而对于 Object-Oriented C++ 而言,由于用户自定义的构造函数和析构函数的存在, pass-by-reference-to- 阅读全文
摘要:
升级 python 版本的问题升级 python 一般会建立软连接,使系统默认的python指向高版本的 python,如:mv /usr/bin/python /usr/bin/python2.6.6 ln -s /usr/local/bin/python2.7 /usr/bin/python ... 阅读全文
摘要:
1、使用编译器的最高警告级别,成功的构建应该是无声无息的(没有警告的)。如果确定是无害警告,且是无法修改的第三方头文件引起的,可以用自己的头文件包装起来,并有选择性的关闭警告,然后项目中使用该头文件。#pragma warning(push) //仅禁用此头文件#pragma warning(disable:4512) #pragma warning(disable:4180)#pragma warning(pop) //恢复最初的警告级别"未使用的函数参数": 如果是为未来预留的,则删除参数名,只保留参数类型即可去警告。如:void print(int i, void * 阅读全文