所以,真正的交易是我在本网站内外进行了大量研究,没有这样的问题或解决方案可以帮助我。
我正在学习C编码。这不是什么大问题,因为我非常了解Python和C#(Unity)。问题是我尝试在Python上做我以前做过的应用程序,但是我遇到了一个问题:我在Debian 8虚拟机上编译我的程序(Oracle的虚拟机)方框),如下:gcc -lm -m64 -o file.exe file.c
。
当我回到我的Windows 10计算机(非虚拟)时,会发现我尝试运行的程序是一个不受支持的程序的16位版本,并且它无法运行。
我真的研究了很多,并且可以找到一些东西,我做了...但是没有任何变化......所以,我认为在联系GCC程序或我的脚本bhaskara.c时有错误(是的,它& #39; sa bhaskara公式计算器):
#include <stdio.h>
#include <math.h>
float main(){
double a, b, c, x1, x2;
double delta;
double d, e;
printf("NOTE: If the numbers are integers, use .0 at the end(eg. 1 = 1.0)\n");
printf("A = ");
scanf("%f", &a);
printf("B = ");
scanf("%f", &b);
printf("C = ");
scanf("%f", &c);
d = b*b;
e = (d + 4*a*c);
delta = sqrt(e);
printf("Delta = %f\n", delta);
x1 = (-b + delta)/2;
printf("X1 = %f\n", x1);
x2 = (-b - delta)/2;
printf("X2 = %f\n", x2);
}
代码很难看,实际上,它只是一个测试...
我尝试过的事情: - 重新安装GCC - 运行不同的选项(-m32和-m64) - 编译whith * .exe,没有它在使用之前添加它(不知道它是否有意义) -turning浮动成双打(代码;直到我所知,双打使用更多字节)
我的问题: 我该怎么办才能修复它?我的脚本是否存在错误,使其无法成为64位?我使用错误版本的GCC吗? (4.9.2;我所知道的全部......)是否还有其他选项可用于选择处理器类型?并使其适用于各种处理器? 在此先感谢,我真的很感激,如果有人能回答我的问题是什么,我真的很难编译...如果我的问题很难理解,请留下下面的内容,以便我可以编辑它。
答案 0 :(得分:5)
默认情况下,没有理由期望Debian安装GCC,以构建Windows可执行文件。如果您在输出上运行file
,您可能会看到如下内容:
ELF 64位LSB可执行文件,x86-64,版本1(GNU / Linux)
您需要这样的可执行文件:
PE32 +可执行文件(GUI)x86-64,适用于MS Windows
这是两种完全不同的文件格式。 Windows不会运行Linux可执行文件(除了使用某种模拟器),Linux不会运行Windows可执行文件(除了使用某种模拟器)。您可以使用交叉编译器在Windows上构建Linux应用程序或在Linux上构建Windows应用程序。