gcc没有';不要创建二进制文件
我正在尝试使用一个简单的Windows API 但当我使用“MessageBoxA”时,我的代码不会创建二进制文件。而且它不会产生任何错误消息 如果我不使用'MessageBoxA',代码将创建二进制文件 我在Windows10上使用gcc版本6.3.0。这是我的密码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
#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