Adam wrote:
Yes, and it still gives the same errors, and it would define 2 "main()"s, seeing that mine has one also. I seem to remember needing those files for something, but what?
You have to include SDL_main.h in the file containing your main (that's the one with the macro to rename your main to SDL_main). It's needed because the SDLMain.m has to setup the window and event loop before your code can start.
I included it, and still, no dice. Link to code with SDL files included:
Hit the second link; you already have the first one if you dl'ed it. Adam wrote:
Is this the same for C++, because I did a search for it, and there was nothing...
Yes it's the same for C++. I just tried it on a C++ project, and _main was listed. It was a no-brainer, though, since my main() is in main.cp, which compiles to main.o.
You might want to describe how you searched for main, or even post the command-line. Here's the one I used as the first try at finding main: nm *.o | grep main
Since it found a _main symbol of type 'T', I am sure that a _main function is defined in one of my .o files. If you don't see any output from grep, then you probably DON'T have _main defined, which would be consistent with the linker error you get. If you DO have a symbol called main defined, i.e. grep produces some output, please copy and paste its entire output into an email and post it to the list.
I ran the above command-line in this sub-dir of my project folder: build/MYPROJECT.build/Debug/MYTARGET.build/Objects-normal/i386
I found no ".build" file searching my entire hard drive, let alone the builds folder. The "MYPROJECT" and "MYTARGET" are specific to my project and target, but everything else is literal. This is for the Debug build configuration. For the Release config, replace "Debug" in the above pathname with "Release".
int main(int argc, char *argv[]) { ...
If you're going to post code, post the entire file with the #includes that come before main(). It provides essential context for understanding your code.
The code is available for download, and if you would like to look at it, you may download it at my website. Other than that, I cannot copy the whole file, as it would go over the size limit set by the lists. Trust me, I tried it once. I posted what code I thought might be relevant. [...]-o "/Users/atg/Desktop/Projects/Xcode Projects/Release/ Tetris_020.app/Contents/MacOS/Tetris_020"[...]
So I looked at the place it specified, and there was nothing in the "MacOS" folder.
You're looking in the wrong place. That;s the output of the linker. I suggested that you look at the linker inputs, i.e. the .o files. Since the linker is failing, there isn't any output, so of course there's nothing there.
Please reread what I originally wrote. I didn't suggest looking in the -o output location, but in the build folder of your project (see example pathname above). I also suggested finding the -filelist option, not the -o option.
-- GG
You lost me the first time, and you have lost me again. The reason I'm coming here for help is because I have absolutely no way of knowing how to do what you are talking about, or else I would have done it and left you guys alone. Adam wrote:
Really? I could have sworn it was the whole project... actually, you're right - I did delete files that had nothing to do with the project... and I couldn't say whether or not the plist was bad because I don't know anything about that sort of thing... try the link again, I removed the extra files...
The latest project file has the same problem I identified with the last one. Namely, SDLMain.m isn't being built. Go back and read what I wrote. I strongly suspect that will fix your problem since SDL.h includes SDL_main.h which has #define main SDL_main
Your main is being renamed to SDL_main. (If you do as others have suggested and run nm on the object files, you'll see _SDL_main there.) You need the main in SDLMain.m.
As I mentioned, I added the SDLmain files to no avail.
Basically, the problem that I'm having is that I don't know what is wrong, and you guys seem to think that it has to do with the SDLmain files. I suggest that you guys create a functional project (since you all seem aware of how to do it, it should take minimal modifications and time) and I can get on with my programming. I save you time, you save me time. This may seem bad to you because you're doing the work and I'm learning "nothing", but in reality we're just saving each other time and we can both get on with our programming, not spend hours trying to figure something out that could take almost no time. Just a thought...
All help is appreciated and thanks in advance.
~ < [ / Adam-o \ ] > ~
Mac OS 10.4.11 Powerbook G4 |