danomatika / ofxPd

(maintained) a Pure Data addon for OpenFrameworks using libpd
Other
202 stars 45 forks source link

Problems compiling Xcode 6.0.1, oF 0.8.4 #38

Closed nodepond closed 9 years ago

nodepond commented 9 years ago

I experienced some strange issues when trying to compile this Addon on xcode 6.0.1.

First, I get issues when trying to compile files with the ~ in the group-(folder)-name. For example at bonk~.

I removed the issuing groups from the project, and compiling steps further.

Then I got next issue at the file s_file.c.

It says: addons/ofxPd/libs/libpd/pure-data/src/s_file.c:234 Variable has incomplete type 'struct stat'

After a deeper analysis I figured out, that this lines here somehow seems to make problems in Xcode. s_file.c, line 19 ff:

ifdef HAVE_UNISTD_H

include <sys/types.h>

include <sys/stat.h>

include <sys/types.h>

include <sys/stat.h>

include

include

endif

I have the suspicion, that the #ifdef HAVE_UNISTD_H is not recognized proper. (I already added the compiler-flag -DHAVE_UNISTD_H)

When I try the open the linked file 'sys/stat.h', xcode says "symbol not found". But when I make this here: // #ifdef HAVE_UNISTD_H

include <sys/types.h>

include <sys/stat.h>

include <sys/types.h>

include <sys/stat.h>

include

include

// #endif

Then not only the project compiles nicely, but also Xcode finds the liked files. Is this an Xcode-issue? Does somebody else experiences this?

BTW: I was also wondering, why sys/types.h and sys/stat.h is included 2x....

danomatika commented 9 years ago

Looks like you're dealing with the symptoms and not the cause. I bet it's some missing defines, make sure you have all of them in your CFlags.

nodepond commented 9 years ago

Oohh! I had the flags already in the C++ compiler flags and confused it with the C-Flags. I just had to put the flags -DHAVE_UNISTD_H -DUSEAPI_DUMMY -DPD into he C-Flags and now both issues are solved. Thanks!

danomatika commented 9 years ago

Yeah, I've done that before too. I'll update the readme with that distinction.