linux下写的C程序无法在win下运行?

C、C++和Java语言
回复
ilsoviet1917
帖子: 270
注册时间: 2009-11-11 23:13
送出感谢: 3 次
接收感谢: 0

linux下写的C程序无法在win下运行?

#1

帖子 ilsoviet1917 » 2010-04-21 22:08

最近学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
同志们,多年的战争使你们踏遍整个欧洲,前方就是华盛顿白宫,到那里去洗刷你们战争的躯体吧!
头像
pocoyo
论坛版主
帖子: 25878
注册时间: 2008-03-25 15:49
来自: 谁知道?
送出感谢: 5 次
接收感谢: 9 次
联系:

Re: linux下写的C程序无法在win下运行?

#2

帖子 pocoyo » 2010-04-21 22:34

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

Re: linux下写的C程序无法在win下运行?

#3

帖子 ilsoviet1917 » 2010-04-21 23:03

pocoyo 写了:。。。用win下的编译器再编译下 :em06
这样可以的么?
话说,不会在win下编译……
同志们,多年的战争使你们踏遍整个欧洲,前方就是华盛顿白宫,到那里去洗刷你们战争的躯体吧!
头像
wangdu2002
帖子: 13284
注册时间: 2008-12-13 19:39
来自: 物华天宝人杰地灵
送出感谢: 1 次
接收感谢: 6 次

Re: linux下写的C程序无法在win下运行?

#4

帖子 wangdu2002 » 2010-04-21 23:32

符合C标准规范的代码应该在win下也是可以编译滴,win平台有win平台的编译器。 :em06
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!
ilsoviet1917
帖子: 270
注册时间: 2009-11-11 23:13
送出感谢: 3 次
接收感谢: 0

Re: linux下写的C程序无法在win下运行?

#5

帖子 ilsoviet1917 » 2010-04-21 23:38

我去试试……
不过我还是想知道为什么会出现这种情况……
同志们,多年的战争使你们踏遍整个欧洲,前方就是华盛顿白宫,到那里去洗刷你们战争的躯体吧!
头像
wangdu2002
帖子: 13284
注册时间: 2008-12-13 19:39
来自: 物华天宝人杰地灵
送出感谢: 1 次
接收感谢: 6 次

Re: linux下写的C程序无法在win下运行?

#6

帖子 wangdu2002 » 2010-04-21 23:47

不过我还是想知道为什么会出现这种情况……
唉。。。你首楼用的标准gcc编译器生成的是Linux平台的ELF可执行文件格式,这个和win的PE可执行文件的二进制文件的数据组织方式不一样滴。。。虽然你给它取了个名字是exe,但它实际并不是win的PE可执行文件的格式。
Lin的可执行二进制文件不象win,它可以不用扩展名滴,因为lin靠文件头识别文件而不是靠扩展名识别文件。。。
如果要给lin的可执行文件用扩展名,不如用test.x32i,test.x64a这样的后缀,方便自己看明白是在什么cpu平台上编译的可执行文件。。。 :em09
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!
ilsoviet1917
帖子: 270
注册时间: 2009-11-11 23:13
送出感谢: 3 次
接收感谢: 0

Re: linux下写的C程序无法在win下运行?

#7

帖子 ilsoviet1917 » 2010-04-22 0:20

谢谢楼上 :em01
同志们,多年的战争使你们踏遍整个欧洲,前方就是华盛顿白宫,到那里去洗刷你们战争的躯体吧!
t3swing
帖子: 1028
注册时间: 2008-11-01 21:42
来自: 树下板凳
送出感谢: 0
接收感谢: 1 次

Re: linux下写的C程序无法在win下运行?

#8

帖子 t3swing » 2010-04-22 8:35

要是这样都行 ,那wine项目20年的努力算是白干了,lz把移植看的太简单了
民族的脊梁,是踏实做事的人,非只知道骂街的泼妇。
dirkgo
帖子: 38
注册时间: 2008-09-17 21:06
送出感谢: 0
接收感谢: 0

Re: linux下写的C程序无法在win下运行?

#9

帖子 dirkgo » 2010-05-03 9:52

C++要能这样跨平台,就不用JAVA了 :em20
jinmu190
帖子: 16
注册时间: 2009-04-27 18:18
送出感谢: 0
接收感谢: 0

Re: linux下写的C程序无法在win下运行?

#10

帖子 jinmu190 » 2010-05-10 18:38

呵呵 跨平台不是改一下扩展名就跨平台了,Win和linux的可执行文件的格式都不一样。
头像
meteormatt
帖子: 693
注册时间: 2008-02-24 14:15
系统: Ubuntu
来自: 江苏
送出感谢: 17 次
接收感谢: 0
联系:

Re: linux下写的C程序无法在win下运行?

#11

帖子 meteormatt » 2010-05-12 13:53

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

说的很对.

怀念以前的老台式机。可惜现在租的地方没条件用了。目前只能用笔记本和手机了。
kinfinger
帖子: 198
注册时间: 2009-05-16 14:22
送出感谢: 0
接收感谢: 0

Re: linux下写的C程序无法在win下运行?

#12

帖子 kinfinger » 2010-05-25 22:25

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...
回复

回到 “C/C++/Java”