views:

66

answers:

2

Hello,

This is my first time doing this sort of project so apologies if the question is silly.

I've got a question about using a C project with a project in the iPhone SDK. I've dragged and dropped the C project into the iPhone project in Xcode (so it appears in the screenshot below).

sjeng.h is a file inside GameEngine.xcodeproj, but when I try to include the header file, I not only receive an error, but the file it is looking for seems to be capitalized whereas the import statement is not.

(I would post a screenshot but this is my first time doing something on stack overflow and I need more reputation points. The URL of the screenshot is here: http://imgur.com/AdrGL.png)

Does anyone know what the problem might be?

Thanks!

A: 

I believe you need to add the source files to your project (Project/Add to project...), rather than drag and drop the .xcodeproj file. You can uncheck "Copy items into destination group's folder (if needed)" if you just want to reference the files without duplicating them. Be sure to include all the required source files (e.g. sjeng.h etc.).

Make sure the files are added to the right Targets in your iPhone project.

StephenT
A: 

You can add files to an XCode project either by drag & drop, or by the Project/Add to project... command (2 ways of accomplishing the same thing).

The problem appears to be that you have added the "GameEngine.xcodeproj" project file into your "Test" project, but you have not included the files (such as sjeng.h) that actually comprise the "GameEngine" project. That's not going to work.

There are two separate ways you could approach this:

1) add all the .c and .h files from "GameEngine" to "Test", and just compile them as part of the iPhone application directly. This is sometimes the most straightforward way, but it's not exactly best practice in terms of modularity and code reuse.

2) make the "GameEngine" project build a Framework (perhaps it's already set up to build as a framework), then add that Framework to your "Test" project. Obviously, you'll need to build the "GameEngine" Framework using the iPhone SDK with appropriate settings (simulator vs. device) to match how you're building the rest of the application. In this case you would have a 2-step build process: first open the "GameEngine" project and build the Framework, then open your "Test" project and build it.

David Gelhar