gcc on Windows: generated “a.exe” file vanishes

前端 未结 8 2194
一个人的身影
一个人的身影 2021-01-12 12:01

I\'m using GCC version 4.7.1, but I\'ve also tried this on GCC 4.8. Here is the code I\'m trying to compile:

#include 

void print(int amount)         


        
8条回答
  •  不要未来只要你来
    2021-01-12 12:28

    (Since ahoffer's deleted answer isn't quite correct, I'll post this, based on information in the comments.)

    On Windows, gcc generates an executable named a.exe by default. (On UNIX-like systems, the default name, for historical reasons, is a.out.) Normally you'd specify a name using the -o option.

    Apparently the generated a.exe file generates a false positive match in your antivirus software, so the file is automatically deleted shortly after it's created. I see you've already contacted the developers of Avast about this false positive.

    Note that antivirus programs typically check the contents of a file, not its name, so generating the file with a name other than a.exe won't help. Making some changes to the program might change the contents of the executable enough to avoid the problem, though.

    You might try compiling a simple "hello, world" program to see if the same thing happens.

    Thanks to Chrono Kitsune for linking to this relevant Mingw-users discussion in a comment.

    This is not relevant to your problem, but you should print a newline ('\n') at the end of your program's output. It probably doesn't matter much in your Windows environment, but in general a program's standard output should (almost) always have a newline character at the end of its last line.

提交回复
热议问题