【问题】:项目迁移时,原来在suse上正常的代码在centos上报错:

g++ -g -Wall -fPIC -I../include -I./ -I../src -I/share/comm_ext -I/home/appadmin/workspace/comm/export_include/ -I/home/appadmin/workspace/comm/export_include/c2cplatform -I/home/appadmin/workspace/comm/export_include/app_platform -I/home/appadmin/workspace/comm/export_include/app_platform/2.4. -c ../include/myutil/net_util.cpp
../include/myutil/net_util.cpp::: 错误:stropts.h:没有那个文件或目录

【查找原因】

1. “stropts.h”似乎是系统提供的头文件,那么位于哪个目录下呢?

在suse上使用如下命令:

g++ -g -Wall -fPIC -I../include -I./ -I../src -I/share/comm_ext -I/home/appadmin/workspace/comm/export_include/ -I/home/appadmin/workspace/comm/export_include/c2cplatform -I/home/appadmin/workspace/comm/export_include/app_platform -I/home/appadmin/workspace/comm/export_include/app_platform/2.4. -E ../include/myutil/net_util.cpp >util.i

使用g++的 -E选项进行预处理(关于-E选项的更多内容,请自行搜索)

打开util.i,有如下内容:

#  "/usr/include/stropts.h"   

可知在suse上该文件位于/usr/include/stropts.h

2. 再centos上查看,确实不存在/usr/include/stropts.h文件:

find /usr -name *stropts.h*
find: “/usr/lib64/audit”: 权限不够

也就是说,centos上的环境确实缺少该头文件

3.既然缺少那就安装。首先需要知道的是,该头文件属于哪个包?

$ yum provides */stropts.h
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
:compat-glibc-headers-2.5-46.2.x86_64 : Header files for development using standard C libraries.
Repo : base
Matched from:
Filename : /usr/lib/x86_64-redhat-linux5E/include/stropts.h
Filename : /usr/lib/x86_64-redhat-linux5E/include/bits/stropts.h
Filename : /usr/lib/x86_64-redhat-linux5E/include/sys/stropts.h

可知compat-glibc-headers-2.5-46.2.x86_64包提供我们需要的头文件,我们只需要安装该包就行了。

4.先确认一下该包有没有被安装过:

$ yum list|grep installed
CollabNetSubversion-client.x86_64 1.8.- installed
ImageMagick.x86_64 - installed
cpp.x86_64 4.1.-.el5 installed
dal_auto_script.i586 - installed
dal_auto_script_set.i586 - installed
gcc.x86_64 4.1.-.el5 installed
gcc-c++.x86_64 4.1.-.el5 installed
libgcc.x86_64 4.1.-.el5 installed
libstdc++.x86_64 4.1.-.el5 installed
libstdc++-devel.x86_64 4.1.-.el5 installed
perl_crontab.i586 - installed
public_scripts.i586 - installed
wget.x86_64 1.12-1.8.el6 installed

既然没有,那就安装吧。。。

centos查看哪些包提供指定头文件的更多相关文章

  1. gcc指定头文件路径及动态链接库路径

    gcc指定头文件路径及动态链接库路径   本文详细介绍了linux 下gcc头文件指定方法,以及搜索路径顺序的问题.另外,还总结了,gcc动态链接的方法以及路径指定,同样也讨论了搜索路径的顺序问题.本 ...

  2. virtualbox linux客户机中安装增强功能包缺少kernel头文件问题解决

    linux客户机中安装增强功能包总会提示缺少kernel头文件 根据发行版的不同,用命令行软件包管理命令安装dkms build-essential linux-headers-$(uname -r) ...

  3. javah生成带有包名的头文件

    无包名情况 多数的demo都是基于这种条件,假设在目录jni/下有一个包含native方法的文件Hello.class.进入jni/目录,直接执行javah Hello,就可以在jni/目录下生成文件 ...

  4. 替换jar包内指定的文件

    用Java jar 工具来替换. ① jar uvf test.jar test.class 把test.class 直接添加到jar包的根目录,也就是替换到根目录文件. ②jar uvf test. ...

  5. CentOS查看安装包会释放哪些文件

    1.查看软件包全称(以mysql为例) rpm -qa | grep -i mysql 2.查看释放出的文件(以MySQL-server-5.5.55-1.el6.x86_64为例) rpm -ql ...

  6. CentOS查看软件源提供的软件版本命令

    yum list available第二列包更详细的说明:yum info packagename

  7. centos 使用RPM包安装指定版本的docker-engine

    下面是拿安装docker-engine-1.10.3-1为例: wget https://yum.dockerproject.org/repo/main/centos/7/Packages/docke ...

  8. eclipse查看jar包中的class文件出现乱码

    参考:http://blog.csdn.net/bell2008/article/details/40978959 1,问题来源是在eclipse中直接查看springside的class(由ecli ...

  9. 如何指定GCC的默认头文件路径

    如何指定GCC的默认头文件路径 网上偶搜得之,以之为宝:)原地址:http://blog.chinaunix.net/u/28781/showart.php?id=401631============ ...

随机推荐

  1. Linux下cp命令的使用说明

    [root@www ~]# cp [-adfilprsu] 来源档(source) 目标档(destination)[root@www ~]# cp [options] source1 source2 ...

  2. tomcat放置静态html页面

    因公司tomcat网站需要部署一个html的静态网页上去 在项目目录下建立了一个 /usr/local/tomcat/apache-tomcat-brain-api/webapps/ROOT/html ...

  3. windows 10 的开始菜单里面图标右击弹不出选项菜单了

    组策略的问题 win + r => gpedit.msc 计算机配置->管理模板>“开始”菜单和任务栏>在“开始”菜单中禁用上下文菜单  改为“已禁用”

  4. 2017CCPC 杭州 J. Master of GCD【差分标记/线段树/GCD】

    给你一个n个初始元素都为1的序列和m个询问q. 询问格式为:l r x(x为2or3) 最后求1~n所有数的GCD GCD:把每个数分别分解质因数,再把各数中的全部公有质因数提取出来连乘,所得的积就是 ...

  5. 洛谷P1919 A*B problem 快速傅里叶变换模板 [FFT]

    题目传送门 A*B problem 题目描述 给出两个n位10进制整数x和y,你需要计算x*y. 输入输出格式 输入格式: 第一行一个正整数n. 第二行描述一个位数为n的正整数x. 第三行描述一个位数 ...

  6. 一个菜鸟正在用SSH写一个论坛(2)

    额 一不小心又一个多月没有写过随笔了. 这次是在某次启动服务器的时候报错了: 严重: Exception starting filter struts2 Unable to load configur ...

  7. 分布式框架Dubbo配置和实例

    准备工作: 1.ZooKeeper:需要去Apache Zookeeper官网下载Zookeeper.tar.gz包,Dubbo是依赖于Zookeeper的 2.Maven:需要去Apache Mav ...

  8. 2. let和const命令--ES6

    1. let命令 let 命令不存在变量提升let 命令 只在let命令所在的代码块内有效. { let a = 10; var b = 1; } a // ReferenceError: a is ...

  9. Java 对象池实现

    http://blog.csdn.net/bryantd/article/details/1100019 http://www.cnblogs.com/devinzhang/archive/2012/ ...

  10. J2EE并发策略控制总结[zz]

    本文结合hibernate以及JPA标准,对J2EE当前持久层设计所遇到的几个问题进行总结: 第一:事务并发访问控制策略    当前J2EE项目中,面临的一个共同问题就是如果控制事务的并发访问,虽然有 ...