gcc与gdb版本兼容问题
摘要:gcc与gdb版本兼容问题今天在用gdb调试C++程序的时候,想用"p i”命令打印出程序的一个局部变量i,却一直提示:No symbol "i" in current context.我愣了下,想到有几种原因可能导致这种情况:1、编译的时候没有加上-g选项,一直编译器没有在可执行程序中加入调试信息;2、编译的时候加上了优化选项,使得编译器把某些变量优化掉了;3、断点加的位置不对,变量超出作用域了。我重新检查了程序以及编译命令,的确是没错的。于是我只能在程序中加了个全局变量gi,然后gdb起来,p gi,发现全局变量却是可以显示的。google了好久都没解决问题,
阅读全文
一个简单的通用Makefile实现
摘要:一个简单的通用Makefile实现一个简单的通用Makefile实现Makefile是Linux下程序开发的自动化编译工具,一个好的Makefile应该准确的识别编译目标与源文件的依赖关系,并且有着高效的编译效率,即每次重新make时只需要处理那些修改过的文件即可。Makefile拥有很多复杂的功能,这里不可能也没必要一一介绍,为了简化问题的复杂性,本文仅和大家讨论针对单目录下的C/C++项目开发,如何写一个通用的Makefile。首先,我们假设当前工程目录为prj/,该目录下有6个文件,分别是:main.c、abc.c、xyz.c、abc.h、xyz.h和Makefile。其中main.c包
阅读全文
Linux下SSH+Firefox
摘要:Linux下SSH+Firefox 简明FQ攻略 FQ的软件有很多,楼主原来在Windows下用过Tor(洋葱头)、Puff、freegate等,一般只需要打开FQ软件,简单的设置后就可以FQ浏览了。Linux下我还没用过,google了一下,方法有很多,这里介绍下使用ssh+FirefoxFQ的一种方法。 ssh的应用之一就是做SOCKS5代理, SOCKS5是一个代理协议,它在使用TCP/IP协议通讯的终端机器和服务器机器之间扮演一个中介角色,使得内部网中的终端机器变得能够访问Internet网中的服务器,或者使通讯更加安全。SOCKS5 服务器通过将终端发来的请求转发给真正的目标服务器.
阅读全文
Linux中随手可得的测试、调试、性能检验工具
摘要:Linux中随手可得的测试、调试、性能检验工具原定标题是“linux自带的测试、调试、性能工具”,不过并不恰当,比如本文要提到的gdb,很多Linux发行版中都提供了它,但毕竟不是Linux的必要组成部分,只是对与大多数Linux用户随手可得罢了。合理组合使用这些工具可以满足更复杂的要求,并写成测试脚本,能为测试提供很大的方便。本文不涉及具体的脚本编写,也不涉及与网络相关的命令如netstat和tcpdump。 为了方便阅读,用横线把内容进行分割,并且每个下划线下对这部分主要内容进行提示。 对于1~6这几个命令,单独使用时看上去很简单,但当它们结合重定向和正则表达式从而构成更复杂的功能甚至..
阅读全文
ubuntu上ssh客户端应用
摘要:ubuntu上ssh客户端应用(2009-08-28 15:18:31)转载▼标签:杂谈分类:编程技术SSH 概念SSH是指Secure Shell,SSH协议族由IETF(Internet Engineering Task Force)的Network Working Group制定,SSH协议的内容SSH协议是建立在应用层和传输层基础上的安全协议。传 统的网络服务程序,如FTP、Pop和Telnet其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人 (man-in-the-middle)攻击方式的攻击。就是存在另一个人或者一台机器冒充真正的服务器接收
阅读全文
配置域从DNS服务器以及缓存DNS服务器
摘要:配置域从DNS服务器以及缓存DNS服务器您可以通过点击 右下角 的按钮 来对文章内容作出评价, 也可以通过左下方的 关注按钮 来关注我的博客的最新动态。 如果文章内容对您有帮助, 不要忘记点击右下角的 推荐按钮 来支持一下哦 如果您对文章内容有任何疑问, 可以通过评论或发邮件的方式联系我: 501395377@qq.com / lzp501395377@gmail.com如果需要转载,请注明出处,谢谢!!在上一篇随笔中Linux学习之CentOS(三十四)--配置域主DNS服务器,详细讲解了如何在Linux环境下配置一个域的主DNS服务器,在本篇随笔中将讲解如何配置一个域的从DNS服务器...
阅读全文
Linux环境下配置Google Test、TBB、OpenMP和OpenCV
摘要:Linux环境下配置Google Test、TBB、OpenMP和OpenCV最近逐渐把开发环境从Windows转到Linux下,原因是Visual Studio提供的环境太庞大,总感觉看不到全貌,并且对于C++11的支持实在是太慢了。而在Linux下,有非常大的选择空间,编辑器可以选vim或者emacs,两者都是顶级的文本编辑器(不仅仅是文本编辑器)。编译器可以选g++或者clang,两者对于C++11的支持已经几乎完整了。另外还有各种优秀的工具可以选择,可以用autotools或者cmake来build工程,用gdb进行调试,用cppcheck做静态类型检查(也可以配置到VS中),用val
阅读全文
HelloWorld - Linux
摘要:HelloWorld - Linux说明:本文基于Centos 6.4 32位操作系统(CentOS-6.4-i386-LiveDVD.iso)一、编写HelloWorld源码远程连接到Centos机器上,先建立一个文件夹用来存放源码:使用mkdir 建立目录 (-p参数指定当父目录不存在时先创建父目录)使用cd命令切换到刚才建立的目录下。使用Centos预装的Vim文本编辑器创建HelloWorld.c源码,输入经典的HelloWorld源代码。1 #include <stdio.h>2 3 int main()4 {5 printf("Hello Wor...
阅读全文
virtualbox虚拟机上安装centOS的网络配置
摘要:virtualbox虚拟机上安装centOS的网络配置最近接触hadoop,需要在在Linux上面开发,所以我装了一个virtualbox虚拟机,在该虚拟机上面安装了一个centOS系统。linux系统是装好了,但是网络配置却另人头疼。我主要是想让宿主机和虚拟机能够互相访问。 然后我就百度了一下,根据百度的结果一步一步的配置。 安装virtualbox之后它会在宿主机上面安装一个虚拟网卡,如图 双击它,查看详情,信息如图所示 在虚拟机上面配置网络我使用的是host-only方式,当然也可以使用桥接的方式,至于他们的区别,网上很多。虚拟机上面主要是使用这块虚拟网卡作为网关。 进入cent...
阅读全文
Linux系统服务基础
摘要:Linux系统服务基础您可以通过点击 右下角 的按钮 来对文章内容作出评价, 也可以通过左下方的 关注按钮 来关注我的博客的最新动态。 如果文章内容对您有帮助, 不要忘记点击右下角的 推荐按钮 来支持一下哦 如果您对文章内容有任何疑问, 可以通过评论或发邮件的方式联系我: 501395377@qq.com / lzp501395377@gmail.com如果需要转载,请注明出处,谢谢!!本篇随笔将主要讲解Linux系统的服务基础,从本篇随笔开始,后续的Linux系列随笔将主要记录常用的各种服务的配置,包括DNS、WWW、Mail等等各种服务的配置。。。一、系统服务的基本概念服务,其实就是...
阅读全文
Ubuntu下有关Java和数据库
摘要:我希望用程序生成一些测试数据,测试一下开源数据库中哪个比较适合我们的数据仓库项目,于是有了这篇随笔。 其实测试数据可以用过程生成,但是我想学学java因此决定用程序实现。而且我先在把windows这个让我一打开电脑就想娱乐的系统卸载了,现在纯Ubuntu。 先记录下Java的配置: 首先需要下载Java,这是一个很简单的过程,链接在这里:http://www.oracle.com/technetwork/java/javase/downloads/index.html。我的是64位系统,因此选择了64位的gz包。下载好以后随便解压到哪个目录底下都是可以的。然后只需要配置这么几个环境变量...
阅读全文
CentOS 6.4 编译安装 gcc 4.8.1
摘要:CentOS 6.4 编译安装 gcc 4.8.1今天在isocpp上看到“GCC 4.8.1 released, C++11 feature complete”这个消息,非常兴奋。终于有一个全面支持C++11语言特性的编译器了!当然了,gcc仅仅是语言特性上全面支持C++11,libstdc++貌似还没有完全跟上,不过我已经挺满足了,至少可以去尝试各种特性了。另外,之前也有消息说Clang功能上也100%支持C++11了,但是内部还在做测试,Clang3.3的release版据说6月5号正式发布,最近对于C++来说大事真多啊,很期待!今天下午看到这个消息,晚上就实在忍不住了,赶紧把最新的gc
阅读全文
浅析Linux计算机进程地址空间与内核装载ELF
摘要:浅析Linux计算机进程地址空间与内核装载ELF环境:lubuntu 13.04 kernel 3.8 gcc 4.7.3作者: SA12226265简介:本文基于Linux™系统对进程创建与加载进行分析,文中实现了Linux库函数fork、exec,剖析内核态执行过程,并进一步展示进程创建过程中进程控制块字段变化信息及ELF文件加载过程。一、初识Linux进程 进程这个概念是针对系统而不...
阅读全文
将使用搬到ubuntu上
摘要:将使用搬到ubuntu上前言一直是装的是双系统win7 + ubuntu (或 deepin linux) , 因为ubuntu 和 deepin linux都是半年一个版本,所以,每次有新版本推出,我就轮流安装体验。不过大部分的学习娱乐都是在win 7下完成的。 前两天win7出问题了,ghost死活不认.gho文件,下了两个windows 居然没装上;好吧~!借此机会,戒掉 windows ,彻底改用linux试试。ubuntukylin 是专门为中国用户定制的unbuntu,所以下载下来体验一把。http://www.ubuntukylin.com/声明:你不吐槽windows和linu
阅读全文
进程的创建与可执行程序的加载
摘要:进程的创建与可执行程序的加载SA1***6*69 张*铭实验环境:ubuntu 12.04 LTS 当在Linux下编写一个源程序,经过编译链接之后生成可执行程序,在终端shell命令行下输入./(可执行程序的名字)来执行的过程,实际上是shell创建一个子进程,在子进程中加载可执行程序进行执行的过程,具体的子进程加载可执行程序之前的准备工作过程以及fork、exec的工作原理分别在Linux操作系统学习_用户进程之由新进程创建到可执行程序的加载Linux操作系统学习_用户进程之fork()与exec函数族篇1、task_struct进程控制块 为了管理进程,内核必须对每个进程所做的事情进行清
阅读全文
虚拟文件系统、块I/O层
摘要:虚拟文件系统、块I/O层虚拟文件系统 系统内所有文件系统不但依赖VFS共存,而且也依靠VFS系统协同工作。 VFS使得用户可以直接使用open/read/write等系统调用,而无需考虑具体文件系统和实际物理介质。 VFS中具有四个主要的对象类型: 超级块 super_block 代表一个已安装的文件系统 通常对应于存放在磁盘特定扇区中的文件系统超级块或文件系统控制块。 索引节点 inode 代表文件系统中(虽然索引节点仅当文件被访问时,才在内存中创建)的一个文件,它也可以是设备或管道这样的特殊文件 包含内核在操作文件或目录时需要的全部信息 目录項对象 denty 代表...
阅读全文
Openstack中的LoadBalancer(负载均衡)功能使用实例
摘要:Openstack中的LoadBalancer(负载均衡)功能使用实例Openstack Grizzily版本发布后Quantum的功能更加完善。 下面我们测试一下在实际应用中的非常有价格LoadBalancer功能.步骤:1.创建两个虚拟机,启用http服务,监听80端口root@AuthServer:~# nova list+--------------------------------------+------+--------+-------------------------------+| ID | Name |...
阅读全文
Linux 学习笔记1
摘要:Linux 学习笔记[1]1.Linux目录结构与windows不同,linux 的部分目录结构如下:其中/为所有目录的根目录 bin 存放二进制可执行文件(ls,cat,mkdir等) boot 存放用于系统引导时使用的各种文件 dev 用于存放设备文件 etc 存放系统配置文件 home 存放所有用户文件的根目录 lib 存放跟文件系统中的程序运行所需要的共享库及内核模块 mnt 系统管理员安装临时文件系统的安装点 opt 额外安装的可选应用程序包所放置的位置 proc 虚拟文件系统,存放当前内存的映射 root 超级用户目录 sbin 存放二进制可执行文件,只有ro...
阅读全文
进程的创建与可执行程序的加载
摘要:进程的创建与可执行程序的加载-总结进程的创建与可执行程序的加载-总结根据前两篇博文中的实验:1:Linux进程地址空间之初探:一2:Linux进程地址空间之初探:二现对进程的创建和可执行程序的加载过程总结如下:一:进程地址空间的组成及相关数据结构 Linux为每个进程都维持了一个独立的虚拟地址空间,进程地址空间又被分为几个虚拟内存区域:代码段、数据段、堆段、栈段、共享库段。进程地址空间中的任何有效地址都只能位于唯一的区域,这些区域不能相互覆盖。通过mmap/munmap函数,内核可以创建/删除一个虚拟内存区域。 主要的数据结构有: task_struct : 进程描述符结构,定义在<li
阅读全文
linux学习体会,献给初学者
摘要:linux学习体会,献给初学者学习linux也有一段时间了,期间也是各种事情。用习惯了windows,现在用ubuntu是各种不爽。 首先,linux的文件系统和windows的不同,还有就是平常windows都是盘符作为磁盘分区,现在linux都是目录树的形式。一时真适应不了。 学习linux,命令真不好记,还是不敏感。 接着,就要说各种版本的linux了: 我是初学者,原来记得同学用的ubuntu,界面红色的很酷,于是自己也是跟风,要学ubunto,在这一段时间之后,才发现什么是ubuntu。ubuntu真的不适合初学者 1、界面太炫了,分散注意力; 2、它的文件系统看着就不想linux.
阅读全文