2013年4月9日

error while loading shared libraries xx.so 解决办法

摘要: 往往在安装动态库之后,再执行调用动态库程序,会报错,即error while loading shared libraries。我使用了MHD动态库就出现这个问题,如下:./s3: error while loading shared libraries: libmicrohttpd.so.10: cannot open shared object file: No such file or directory原因一般有两个, 一个是操作系统里确实没有包含该共享库(lib*.so.*文件)或者共享库版本不对, 遇到这种情况那就去网上下载并安装上即可.另外一个原因就是已经安装了该共享库, 但执行 阅读全文

posted @ 2013-04-09 10:11 joygpwan 阅读(741) 评论(0) 推荐(0) 编辑

【转】NFS攻略 - Linux文件服务器搭建与使用实例

摘要: 本文链接:http://codingstandards.iteye.com/blog/816246本文内容包括:1NFS概述及实例2Linux下NFS服务器的设置3Linux下NFS客户端的设置4Windows下NFS客户端的安装及设置1NFS概述及实例1.1NFS是什么?NFS是网络文件系统NetworkFileSystem的简称,最早是由Sun公司开发出来的,目的是想让不同的机器、不同的操作系統可以共享文件。在Unix/Linux类的操作系统中可以用NFS来搭建文件服务器。对于一个真实的运行环境而言,配置和启用文件服务器都是很有必要的。把重要的数据集中存储和管理,其安全性显然比分布存储要可 阅读全文

posted @ 2013-04-09 09:14 joygpwan 阅读(1252) 评论(0) 推荐(0) 编辑

2013年4月8日

多文件编译中 undefined reference to 库函数问题

摘要: undefined reference to是一个非常普遍的问题,而且出现这种提示之后有很多的原因。但是碰到的一个问题却非常诡异。核心问题就是多文件连接时的顺序问题!我是进行多文件编译,调用了两个开源库函数。我在我自己的虚拟机上的Fedora系统上能够编译连接通过并顺利执行,但是切换到Ubuntu系统的时候,各个文件单独编译能够编译通过,但是把各个目标文件连接成可执行文件的时候却报错,undefined reference to所有的引用的库函数。于是我搜索了各种相关问题的原因,并一遍一遍地尝试,最终在调整了连接命令的顺序之后在Ubuntu上连接通过。我的Makefile文件中连接生成可执行文 阅读全文

posted @ 2013-04-08 20:32 joygpwan 阅读(426) 评论(0) 推荐(0) 编辑

c++中在堆和栈中申请空间的差别

摘要: 堆中和栈中申请的空间的比较, 我找到了下面的比较:栈的情况:栈上分配空间的好处是快,而且对象生存期是自动的,离开当前域之后就自动析构回收。坏处就是栈空间有限,而且不能人为控制对象的生存期,比如你无法将一个函数内部的栈上的对象返回,因为这个函数执行完毕后栈空间会自动回收。堆的情况堆上分配空间就相反,new一个空间出来是较慢的,而且对堆上对象的访问也稍慢于栈上。一旦new一个空间出来,需要自己手动去delete回收,系统不会帮你管理回收(用GC的除外),但是分配空间大小灵活,而且正因为是手动回收的,你可以自由控制对象生存期,常用来跨域传递对象。管理方式不同:栈是由编译器自动管理的。堆的释放工作是由 阅读全文

posted @ 2013-04-08 20:03 joygpwan 阅读(3165) 评论(0) 推荐(0) 编辑

【转】一个fork的面试题

摘要: 前两天有人问了个关于Unix的fork()系统调用的面试题,这个题正好是我大约十年前找工作时某公司问我的一个题,我觉得比较有趣,写篇文章与大家分享一下。这个题是这样的:题目:请问下面的程序一共输出多少个“-”?#include <stdio.h>#include <sys/types.h>#include <unistd.h>int main(void){ int i; for(i=0; i<2; i++){ fork(); printf("-"); } return 0;}如果你对fork()的机制比较熟悉的话,这个题并不难,输出 阅读全文

posted @ 2013-04-08 18:47 joygpwan 阅读(155) 评论(0) 推荐(0) 编辑

2013年3月13日

【转】解决多文件编译中连接错误 multiple definition of*****

摘要: 总结了解决multiple definition of的方法:问题原因: 当多个文件包含同一个头文件时,并且你的.H里面没有加上条件编译#ifndef TEST_H#define TEST_H#endif就会独立的解释,然后生成每个文件生成独立的标示符。在编译器连接时,就会将工程中所有的符号整合在一起,由于,文件中有重名变量,于是就出现了重复定义的错误。方法1: 给每一个头文件加上条件编译,避免该文件被多次引用时被多次解释,这是个应该是习惯。这个方法会解决大部分低级问题。方法2: 当方法1无效时,可以把所有的全局变量放入一个头文件 global.h (名字随意起,但要加条件编译)中,每一个变量 阅读全文

posted @ 2013-03-13 15:20 joygpwan 阅读(284) 评论(0) 推荐(0) 编辑

2013年3月11日

【转】CentOS支持reiserFS的设置方法

摘要: CentOS默认安装情况下并不能支持reiserFS,但是通过采用CentOS Plus内核,实现对reiserFS的支持。方法如下: 一:更新内核: vi /etc/yum.repos.d/CentOS-Base.repo 将该文件[centosplus]部分中的 enabled=0 更改为 enabled=1 然后执行yum update,并重新启动计算机。CentOS默认安装情况下并不能支持reiserFS,但是通过采用CentOS Plus内核,实现对reiserFS的支持。方法如下:一:更新内核:vi /etc/yum.repos.d/CentOS-Base.repo将该文件[cen 阅读全文

posted @ 2013-03-11 10:07 joygpwan 阅读(274) 评论(0) 推荐(0) 编辑

2013年3月9日

【转】Linux中Mount和unmount

摘要: 一个文件系统可以使用之前,必须mount。 操作系统然后做一些记录以确认正常。因为UNIX所有的文件在一个目录树中, mount操作的结果使新的文件系统的内容好象在某个已经mount的文件系统的 一个已经存在的子目录中。例如,图4.3显示3个单独的文件系统,每个有其自己的根目录。 当后2个文件系统被mount到第一个文件系统的/home和/usr, 我们得到一个目录树,如图 4.4.图4.3:3个单独的文件系统。图4.4:/home和/usr已经mount上。上面的mount可能使用如下命令:$mount /dev/hda2 /home$mount /dev/hda3 /usr$mount命令 阅读全文

posted @ 2013-03-09 14:28 joygpwan 阅读(775) 评论(0) 推荐(0) 编辑

【转】linux mkfs命令参数及用法详解---linux格式化文件系统命令(包括swap分区)

摘要: linux mkfs 指令:mkfs 使用权限 : 超级使用者 使用方式 : mkfs [-V] [-t fstype] [fs-options]filesys [blocks] [-L Lable] 说明 : 建立 linux 档案系统在特定的 partition 上 参数 : device : 预备检查的硬盘 partition,例如:/dev/sda1 -V : 详细显示模式 -t : 给定档案系统的型式,Linux 的预设值为ext2 -c : 在制做档案系统前,检查该partition 是否有坏轨 -l bad_blocks_file : 将有坏轨的block... 阅读全文

posted @ 2013-03-09 14:11 joygpwan 阅读(607) 评论(0) 推荐(0) 编辑

2013年3月3日

【转】URL与URI区别

摘要: URL与URI区别:URL:统一资源定位符URI:通用资源标志符已更改,更改如下,百度百科后如下一般解释。URI Web上可用的每种资源 - HTML文档、图像、视频片段、程序等 - 由一个通 用资源标志符(UniformResource Identifier, 简称"URI")进行定位。 URI一般由三部分组成: 访问资源的命名机制。 存放资源的主机名。 资源自身的名称,由路径表示。 考虑下面的URI,它表示了当前的HTML 4.0规范: http://www.webmonkey.com.cn/html/html40/ 这个URI是这样的:这是一个可通过HTTP协议访问的 阅读全文

posted @ 2013-03-03 09:33 joygpwan 阅读(209) 评论(0) 推荐(0) 编辑

导航