【问题】:项目迁移时,原来在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. angularjs 微信授权登录 微信支付

    最近做一个项目,用angular 一个单页应用,打算打包成 跨平台移动App 以及在微信里面使用.给大家一个案例 首先,熟悉一下微信授权部分的源代码,如下所示: javascript 前端代码: va ...

  2. Ubuntu 16.04 LTS安装Docker并使用加速器

    参考优酷:http://v.youku.com/v_show/id_XMTkxOTYwODcxNg==.html?spm=a2h0k.8191407.0.0&from=s1.8-1-1.2 首 ...

  3. django使用MySQL时部分配置

    若是Django中使用MySQL,需要在项目名文件目录下(而不是应用文件)的__init__.py文件中添加: import pymysqlpymysql.install_as_MySQLdb()

  4. 阅读 CMakeLists

    新手,入门阅读 CMakeLists,希望读者能给点建议 发现两篇文章,我感觉很好~ <阅读 CMakeLists>(下面只copy此篇)文章来源:http://blog.sina.com ...

  5. STM32通用定时器实现LED灯闪烁

    刚才看了一下STM32通用定时器的教程,其实和51的定时器使用差不多.只是因为32的时钟更复杂,可操控的寄存器更多,所以写的时候可能更复杂. 使用通用定时器中断的一般步骤:1.使能定时器时钟 这个需要 ...

  6. springMVC中Unknown return value type: java.lang.Integer(解决)

    controller层返回值类型为Integer,然而报 Unknown return value type: java.lang.Integer 这个错误,500错误 解决办法:在此方法上写上注解@ ...

  7. 删除元素(LintCode)

    删除元素 给定一个数组和一个值,在原地删除与值相同的数字,返回新数组的长度. 元素的顺序可以改变,并且对新的数组不会有影响. 样例 给出一个数组 [0,4,4,0,0,2,4,4],和值 4 返回 4 ...

  8. Server SQL 2008 练习

    一.修改数据库 (1)给db_temp数据库添加一个数据文件文件db_temp1指定大小为5MB,最大文件大小为100mb,自动递增大小为1MB,存储路径为d:\. 利用系统存储过程sp_helpdb ...

  9. Linux下屏幕截图

    Ubuntu使用教程——截屏 http://www.linuxidc.com/Linux/2014-02/96827.htm Ubuntu下使用(xfce截屏)及GNOME下一个好用的截屏工具 htt ...

  10. [Luogu1119]采蘑菇

    题目大意: 给你一个无向图,点i在时间t[i]之前是不存在的,有q组询问,问你时间为t时从x到y的最短路. 点的编号按出现的时间顺序给出,询问也按照时间顺序给出. 思路: Floyd. Floyd的本 ...