From: Wu Y. <ad...@ne...> - 2001-12-07 09:57:55
|
Please try it again with the following procedure: 1. Have a hello.c, say, a simple one-line "int main() {}" 2. Delete any hello.exe if there is any 3. Compile with "gcc hello.c hello.exe" and you will get an error as I described 4. Check the current directory and you'll find no new EXE file is created 5. Compile again with "gcc hello.c -o hello.exe" and it will be OK 6. Try again "gcc hello.c hello.exe" and you will get a lot of link errors Thus you will come to the conclusion that the "-o" is not assumed and can never be omitted. However, you have stated earlier that "gcc -mno-cygwin hello.c hello.exe" works just fine (-o is assumed to precede hello.exe). All my postings in this thread is to disprove the above statement. (Of course, adding "-mno-cygwin" will not change anything.) Is that clear enough? Best regards, Wu Yongwei --- Original Message from "Paul G." <pga...@qw...> --- > Hey Paul, I was talking about the part that you thought "-o is > assumed" when compiling. If by chance the command line did not report > an error, it is because hello.exe is already there and gcc is somehow > fooled. I COULD NOT IDENTIFY A TEST CASE WHERE THE "-o" OPTION COULD > BE OMITTED. Ok. Was illustrating that a good "rule of thumb" is to make the -o<filename> switch the last thing in the command line. That's all. so, and this is style of course, gcc hello.c -l<somelib> [some switch(es)] -o<filename> eliminates confusion, especially if gcc -o<somefile> somefile.source is being used. > I certainly have a hello.c at hand when trying your command line. Kind of thought you would. Why I was puzzled by your question. Paul G. |