免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5104 | 回复: 5
打印 上一主题 下一主题

[C++] cannot execute binary file [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-04-15 10:41 |只看该作者 |倒序浏览
本帖最后由 stone421 于 2011-04-15 13:17 编辑

别人开发了一个用于64位机器的库xxx.so,我现在在64位机器上想写一个test程序测试一下这个库,
我用 g++ -m64  -o test test.cc -lxxx 的方式编译通过了,可是我./test时就cannot execute binary file
请问这是怎么回事呢? 谢谢!
我查了一下 -m64 的意思是 The 64-bit environment sets int to 32 bits and long and pointer to 64 bits and generates code for AMD's x86-64 architecture
而我的机器是intel i5 是与这有关系吗?

file test的结果是
test: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, not stripped

论坛徽章:
0
2 [报告]
发表于 2011-04-15 10:56 |只看该作者
文件有执行权限吗?你有执行权限吗?

论坛徽章:
0
3 [报告]
发表于 2011-04-15 11:12 |只看该作者
文件有执行权限吗?你有执行权限吗?
雨过白鹭洲 发表于 2011-04-15 10:56


论坛徽章:
0
4 [报告]
发表于 2011-04-15 17:15 |只看该作者
本帖最后由 zhumao 于 2011-04-15 17:17 编辑
我用 g++ -m64  -o test test.cc -lxxx 的方式编译通过了


必须使用-m64参数吗?如果不用是不是也可以?
另外,编译程序跟机器位数有关?我不太确定。只要符合平台要求就可以用吧?

论坛徽章:
0
5 [报告]
发表于 2011-04-15 20:22 |只看该作者
这个跟平台有关的...
遇到了,没办法,去目标机编译执行就可以了

论坛徽章:
0
6 [报告]
发表于 2011-04-15 20:36 |只看该作者
uname -a
ls -l test
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP