当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 12 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : linux下写的C程序无法在win下运行?
帖子发表于 : 2010-04-21 22:08 

注册: 2009-11-11 23:13
帖子: 270
送出感谢: 3
接收感谢: 0 次
最近学C写了小程序

代码:
#include <stdio.h>

int main (void)
{
   int n, TNumber;

   printf ("TABLE OF TRIANGULARNUMBERS\n\n");
   printf (" n      Sum form 1 to n\n");
   printf ("---      ---------------\n");


   TNumber = 0;

   for (n = 1; n<=10; ++n)
   {
      TNumber += n;
      printf (" %i          %i\n", n, TNumber);
   }

   return 0;
}


然后

gcc -Wall prog3.c -o prog3.exe

生成一个.exe文件。
在linux下运行的好好的,但是在vista下运行后提示

The NTVDM CPU has encountered an illegal instruction
CS:128f IP:009 OP:00 00 0c 9f choose 'Close' to terminate the application

这是什么问题?! :em20


_________________
同志们,多年的战争使你们踏遍整个欧洲,前方就是华盛顿白宫,到那里去洗刷你们战争的躯体吧!


页首
 用户资料  
 
2 楼 
 文章标题 : Re: linux下写的C程序无法在win下运行?
帖子发表于 : 2010-04-21 22:34 
头像

注册: 2008-03-25 15:49
帖子: 25877
地址: 谁知道?
送出感谢: 8
接收感谢: 10
。。。用win下的编译器再编译下 :em06


页首
 用户资料  
 
3 楼 
 文章标题 : Re: linux下写的C程序无法在win下运行?
帖子发表于 : 2010-04-21 23:03 

注册: 2009-11-11 23:13
帖子: 270
送出感谢: 3
接收感谢: 0 次
pocoyo 写道:
。。。用win下的编译器再编译下 :em06

这样可以的么?
话说,不会在win下编译……


_________________
同志们,多年的战争使你们踏遍整个欧洲,前方就是华盛顿白宫,到那里去洗刷你们战争的躯体吧!


页首
 用户资料  
 
4 楼 
 文章标题 : Re: linux下写的C程序无法在win下运行?
帖子发表于 : 2010-04-21 23:32 
头像

注册: 2008-12-13 19:39
帖子: 13284
地址: 物华天宝人杰地灵
送出感谢: 1
接收感谢: 6
符合C标准规范的代码应该在win下也是可以编译滴,win平台有win平台的编译器。 :em06


_________________
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!


页首
 用户资料  
 
5 楼 
 文章标题 : Re: linux下写的C程序无法在win下运行?
帖子发表于 : 2010-04-21 23:38 

注册: 2009-11-11 23:13
帖子: 270
送出感谢: 3
接收感谢: 0 次
我去试试……
不过我还是想知道为什么会出现这种情况……


_________________
同志们,多年的战争使你们踏遍整个欧洲,前方就是华盛顿白宫,到那里去洗刷你们战争的躯体吧!


页首
 用户资料  
 
6 楼 
 文章标题 : Re: linux下写的C程序无法在win下运行?
帖子发表于 : 2010-04-21 23:47 
头像

注册: 2008-12-13 19:39
帖子: 13284
地址: 物华天宝人杰地灵
送出感谢: 1
接收感谢: 6
引用:
不过我还是想知道为什么会出现这种情况……

唉。。。你首楼用的标准gcc编译器生成的是Linux平台的ELF可执行文件格式,这个和win的PE可执行文件的二进制文件的数据组织方式不一样滴。。。虽然你给它取了个名字是exe,但它实际并不是win的PE可执行文件的格式。
Lin的可执行二进制文件不象win,它可以不用扩展名滴,因为lin靠文件头识别文件而不是靠扩展名识别文件。。。
如果要给lin的可执行文件用扩展名,不如用test.x32i,test.x64a这样的后缀,方便自己看明白是在什么cpu平台上编译的可执行文件。。。 :em09


_________________
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!


页首
 用户资料  
 
7 楼 
 文章标题 : Re: linux下写的C程序无法在win下运行?
帖子发表于 : 2010-04-22 0:20 

注册: 2009-11-11 23:13
帖子: 270
送出感谢: 3
接收感谢: 0 次
谢谢楼上 :em01


_________________
同志们,多年的战争使你们踏遍整个欧洲,前方就是华盛顿白宫,到那里去洗刷你们战争的躯体吧!


页首
 用户资料  
 
8 楼 
 文章标题 : Re: linux下写的C程序无法在win下运行?
帖子发表于 : 2010-04-22 8:35 

注册: 2008-11-01 21:42
帖子: 1028
地址: 树下板凳
送出感谢: 0 次
接收感谢: 1
要是这样都行 ,那wine项目20年的努力算是白干了,lz把移植看的太简单了


_________________
民族的脊梁,是踏实做事的人,非只知道骂街的泼妇。


页首
 用户资料  
 
9 楼 
 文章标题 : Re: linux下写的C程序无法在win下运行?
帖子发表于 : 2010-05-03 9:52 

注册: 2008-09-17 21:06
帖子: 38
送出感谢: 0 次
接收感谢: 0 次
C++要能这样跨平台,就不用JAVA了 :em20


页首
 用户资料  
 
10 楼 
 文章标题 : Re: linux下写的C程序无法在win下运行?
帖子发表于 : 2010-05-10 18:38 

注册: 2009-04-27 18:18
帖子: 16
送出感谢: 0 次
接收感谢: 0 次
呵呵 跨平台不是改一下扩展名就跨平台了,Win和linux的可执行文件的格式都不一样。


页首
 用户资料  
 
11 楼 
 文章标题 : Re: linux下写的C程序无法在win下运行?
帖子发表于 : 2010-05-12 13:53 
头像

注册: 2008-02-24 14:15
帖子: 693
地址: 江苏
系统: Ubuntu
送出感谢: 17
接收感谢: 0 次
wangdu2002 写道:
引用:
不过我还是想知道为什么会出现这种情况……

唉。。。你首楼用的标准gcc编译器生成的是Linux平台的ELF可执行文件格式,这个和win的PE可执行文件的二进制文件的数据组织方式不一样滴。。。虽然你给它取了个名字是exe,但它实际并不是win的PE可执行文件的格式。
Lin的可执行二进制文件不象win,它可以不用扩展名滴,因为lin靠文件头识别文件而不是靠扩展名识别文件。。。
如果要给lin的可执行文件用扩展名,不如用test.x32i,test.x64a这样的后缀,方便自己看明白是在什么cpu平台上编译的可执行文件。。。 :em09

恩.

说的很对.


_________________

怀念以前的老台式机。可惜现在租的地方没条件用了。目前只能用笔记本和手机了。


页首
 用户资料  
 
12 楼 
 文章标题 : Re: linux下写的C程序无法在win下运行?
帖子发表于 : 2010-05-25 22:25 

注册: 2009-05-16 14:22
帖子: 198
送出感谢: 0 次
接收感谢: 0 次
ilsoviet1917 写道:
最近学C写了小程序

代码:
#include <stdio.h>

int main (void)
{
   int n, TNumber;

   printf ("TABLE OF TRIANGULARNUMBERS\n\n");
   printf (" n      Sum form 1 to n\n");
   printf ("---      ---------------\n");


   TNumber = 0;

   for (n = 1; n<=10; ++n)
   {
      TNumber += n;
      printf (" %i          %i\n", n, TNumber);
   }

   return 0;
}


然后

gcc -Wall prog3.c -o prog3.exe

生成一个.exe文件。
在linux下运行的好好的,但是在vista下运行后提示

The NTVDM CPU has encountered an illegal instruction
CS:128f IP:009 OP:00 00 0c 9f choose 'Close' to terminate the application

这是什么问题?! :em20
肯定不能直接运行阿,必须重新编译


_________________
missing is i missing you...


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 12 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译