CentOS 开发问题
来源:互联网 发布:安卓埋雷软件 编辑:程序博客网 时间:2024/05/18 22:42
部门使用一台安装CentOS 64bit的服务器,编译一个简单的Hello World 程序在其他的Linux PC下运行,失败了。原因就是生成了64位的可执行程序,其它PC是32位的,当然失败, 通过命令:
# objdump -f a.out
查看关键字 elf32-i386 (32bit) or elf64-x86-64 (64bit)
所以再64bit CentOS下需要编译32bit的可执行程序,需要加上"-m32"选项
运行: # gcc -m32 -o work work.c
出错:error: gnu/stubs-32.h: No such file or directory出错:
缺少32bit的头文件,输入:
# yum -y install glibc-devel.i686 glibc-devel
安装了头文件
再次运行: # gcc -m32 -o work work.c
新的错误:
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/4.4.6/libgcc_s.so when searching for -lgcc_s
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/4.4.6/libgcc_s.so when searching for -lgcc_s
/usr/bin/ld: cannot find -lgcc_s
开始在我的Linux目录下:
#ls /usr/lib/gcc/x86_64-redhat-linux/4.4.6/32/libgcc_s.so
存在so,后来仔细检查发现是一个软连接,指向的位置确实空的,所以找不到libgcc_s
如何安装相应的动态库,希望使用yum安装,但是网上说的都不起作用,郁闷了
最后访问CentOS的网站,获得相对应的rpm包
libgcc-4.4.6-3.el6.i686.rpm
通过 #rpm -ihv libgcc-4.4.6-3.el6.i686.rpm
顺手安装了另外一个安装包 libstdc++-4.4.6-3.el6.i686.rpm
libstdc++-4.4.6-3.el6.i686.rpm 是通过g++编译cpp文件
重新运行:# gcc -m32 -o work work.c
终于成功了!
后来,服务器格式化,需要重装(安装为Centos6.5, 使用gcc4.4.7了)
通过 #rpm -ihv libstdc++-4.4.7-4.el6.i686.rpm
失败,后来尝试:
#yum install libstdc++-4.4.7-4.el6.i686.rpm
解决战斗!
后来安装一个新的包ncurses-libs-5.7-3.20090208.el6.i686.rpm,支持libncursesw.so,悲催了是始终编译失败,提示
/usr/bin/ld: skipping incompatible /usr/lib64/libncursesw.so when searching for -lncursesw
/usr/bin/ld: cannot find -lncursesw
collect2: ld returned 1 exit status
但是我肯定安装了啊,并且确定是支持32位的,后来发现
lrwxrwxrwx 1 root root 18 Oct 15 14:28 /lib/libncursesw.so.5 -> libncursesw.so.5.7
-rwxr-xr-x 1 root root 195244 Aug 18 2010 /lib/libncursesw.so.5.7
原来文件名是libncursesw.so.5 and libncursesw.so.5.7,找不到libncursesw.so
于是我在/usr/lib/下,运行:
# ln -s /lib/libncursesw.so.5 /usr/lib/libncursesw.so
一个软链接指向 *.so,加载动态库需要找到 *.so, 而不能只是 *.so.number
- CentOS 开发问题
- 安装centos开发包
- 安装centos开发包
- 安装centos开发包
- Centos开发环境配置
- CentOS开发环境搭建
- centos 开发环境配置
- centos开发环境安装
- Centos开发环境搭建
- CentOS 开发环境搭建
- CentOS安装开发工具包
- CentOS初始化开发环境
- 在CentOS上使用Neatbeans开发C++,调用Python的过程、遇到的问题和解决办法
- 解决了我TINY6410开发版到Centos的mount问题
- CentOS 5.4问题
- CentOs中文乱码问题
- centos安装Nginx问题
- centos 使用vsftpd问题
- 云南晋宁项目施工方与村民冲突 已致8死18伤(图)(1)
- 书评第002篇:《汇编语言(第3版)》
- Integer to Roman
- 中国已成军事大国 可遏制日本重走军国主义老路
- URAL1917_Titan Ruins: Better late than killed_二分搜索
- CentOS 开发问题
- 找钱方式:递归,循环的解法
- 朝鲜半岛不再被关注 金正恩玩消失成功转移焦点
- spoj705( 求不相同的子串个数)
- 【Unity3D_Shader】流水Shader的名词查找和疑问
- MYSQL的explain工具简介
- matlab .m文件转换成exe可执行文件
- 判断是否存在一条直线穿过所有的线段
- 奥巴马对20国防长演讲:埃博拉疫情必须从源头根除