当前位置:  开发笔记 > 编程语言 > 正文

GCC无法在64位编译C程序

如何解决《GCC无法在64位编译C程序》经验,为你挑选了1个好方法。

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

我正在学习C编码.这不是什么大问题,因为我非常了解Python和C#(Unity).问题是我正在尝试在Python上做我以前做过的应用程序,但我遇到了一个问题:我正在Debian 8虚拟机(Oracle的虚拟盒)上编译我的程序,如下所示:gcc -lm -m64 -o file.exe file.c.当我回到我的Windows 10机器(非虚拟)时,会发现我正在尝试运行的程序是一个不受支持的程序的16位版本,并且它无法运行它.我真的研究了很多,并且可以找到一些东西,我做的女巫......但是没有任何改变......所以,我认为在联系GCC程序或我的脚本bhaskara.c时有错误(是的,它是一个bhaskara公式计算器):

#include 
#include 

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> David Schwar..:

绝对没有理由期望Debian安装GCC,默认情况下,构建Windows可执行文件.如果你file在输出上运行,你可能会看到这样的东西:

ELF 64位LSB可执行文件,x86-64,版本1(GNU/Linux)

你需要一个这样的可执行文件:

用于MS Windows的PE32 +可执行文件(GUI)x86-64

这是两种完全不同的文件格式.Windows不会运行Linux可执行文件(除了使用某种模拟器),Linux不会运行Windows可执行文件(除了使用某种模拟器).您可以使用交叉编译器在Windows上构建Linux应用程序或在Linux上构建Windows应用程序.

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有