GCC无法在64位

时间:2015-12-22 22:12:16

标签: c gcc compilation 64-bit

所以,真正的交易是我在本网站内外进行了大量研究,没有这样的问题或解决方案可以帮助我。

我正在学习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;我所知道的全部......)是否还有其他选项可用于选择处理器类型?并使其适用于各种处理器? 在此先感谢,我真的很感激,如果有人能回答我的问题是什么,我真的很难编译...如果我的问题很难理解,请留下下面的内容,以便我可以编辑它。

1 个答案:

答案 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应用程序。