Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
gcc没有';不要创建二进制文件_C_Windows_Gcc - Fatal编程技术网

gcc没有';不要创建二进制文件

gcc没有';不要创建二进制文件,c,windows,gcc,C,Windows,Gcc,我正在尝试使用一个简单的Windows API 但当我使用“MessageBoxA”时,我的代码不会创建二进制文件。而且它不会产生任何错误消息 如果我不使用'MessageBoxA',代码将创建二进制文件 我在Windows10上使用gcc版本6.3.0。这是我的密码 #include <stdio.h> #include <windows.h> int main() { printf("hello\n"); MessageBoxA( 0, "hell

我正在尝试使用一个简单的Windows API

但当我使用“MessageBoxA”时,我的代码不会创建二进制文件。而且它不会产生任何错误消息

如果我不使用'MessageBoxA',代码将创建二进制文件

我在Windows10上使用gcc版本6.3.0。这是我的密码

#include <stdio.h>
#include <windows.h>

int main() {
    printf("hello\n");

    MessageBoxA( 0, "hello", "aa", 0); // If I subtract this line, it works fine.

    return 0;
}
  • 2020-04-27)我附上了一个屏幕截图来显示我的编译结果。

据我所知,这个问题的解决方案如下:

  • 使用MinGW时,请使用
    -std=c11
    选项
  • 使用其他工具,如MinGW W64

多亏了@FelixG、@TomKarzes、@MOehm、@DavidC.Rankin、@hanshenrik

,如果您没有得到二进制文件,那么编译器一定输出了某种错误消息,您也应该将其包含在您的问题中。当您尝试链接程序时,是否收到过任何关于
MessageBoxA
丢失的消息?如果是这样,那么您需要与提供它的库链接。您如何编译您的程序?您必须使用gcc链接到
user32
,可能是使用
-luser32
。如果您在VS code或其他保存在UTF-16中的编辑器中进行编辑,gcc将无法读取它。(确保保存为UTF-8或ASCII)如果确实没有收到错误消息,是否有任何输出?如果您有意引入语法错误(例如,在printf或类似内容之后删除分号),您会收到错误消息吗?
gcc myfile.c -o xxx.exe