64位linux 编译c程序链接到i386-linux-gnu-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

64位linux 编译c程序链接到i386-linux-gnu

2016-06-27 14:32:29 2686 1

在自己的64位的linux上写的C程序,编译运行都很正常,生成的.d文件里面链接的库也是链接到x86_64-linux-gnu下的。程序拷贝到64位服务器上去运行也没有问题,但是如果重新make的话就会出错,.d文件里面链接的库都是链接到 i386-linux-gnu 下的,然后提示找不到这些头文件。已经检查了服务器上 make gcc g++ 的版本号,都是和自己笔记本上一致的

取消 提交回答
全部回答(1)
  • a123456678
    2019-07-17 19:47:35

    这个问题涉及到32位,64位机器以及GCC在这两种平台上的具体用法

    如果你的机器是Intel CPU,安装的是Linux 64位系统,自然编译时链接库也会自动选择64位库,这个信息可以从你输入命令gcc -v, 从Target: x86_64-xxxxxxx和Configured With:.......等信息可以确认。(光是看版本号是不行的)

    程序在你的笔记本上编译和运行正常, 你把程序copy到服务器上运行也正常,说明该程序所依赖的64位库文件在服务器上也能找到(通常在/lib64/....)

    但是如果在服务器上进行编译,就会出错,显示错误是头文件找不到, 库文件链接错误(去找32位库),这说明可能服务器上的gcc默认配置可能不合适,它会自己默认去链接32位库,请检查你服务器上的gcc -v。

    相要修改这个问题,你可以选择补全32位环境,包括对应库文件, 然后在服务器上以32位环境运行; 或者是在服务器上gcc加入选项-m64。

    0 0
相关问答

29

回答

云计算之路:为什么要选择云计算

cnblogs 2013-03-27 10:22:27 143073浏览量 回答数 29

162

回答

惊喜翻倍:免费ECS+免费环境配置~!(ECS免费体验6个月活动3月31日结束)

豆妹 2014-10-29 17:52:21 226093浏览量 回答数 162

145

回答

【新手入门】云服务器linux使用手册

fanyue88888 2012-11-26 17:14:18 157661浏览量 回答数 145

18

回答

阿里云开放端口权限

xcxx 2016-07-20 15:03:33 646735浏览量 回答数 18

38

回答

安全组详解,新手必看教程

我的中国 2017-11-30 15:23:46 259803浏览量 回答数 38

294

回答

Linux Bash严重漏洞修复紧急通知(已全部给出最终修复方案)

qilu 2014-09-25 13:26:50 434539浏览量 回答数 294

249

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 305592浏览量 回答数 249

97

回答

Redhat/CentOS一键安装web环境全攻略

xiaofanqie 2011-08-11 14:51:38 123683浏览量 回答数 97

40

回答

阿里云ecs从购买到环境搭建和建站!!(phpstudy一件包)

梦丫头 2014-07-29 20:51:49 162498浏览量 回答数 40

24

回答

【精品问答】python技术1000问(1)

问问小秘 2019-11-15 13:25:00 475505浏览量 回答数 24
+关注
0
文章
14879
问答
问答排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载