Hi there — total noob. Installed ARTK on my old g$ laptop with Tiger — love it. Want to install it on my MacPro with 10.6.1 - get all kinds of build errors. I am compiling straight from command line and get failure. i have scoured the web and can't find a thing about this. It seems when it gets to compiling "VideoMacOSX" it fails hard:
### excerpt of build output###
(cd VideoMacOSX; make -f Makefile)
cc -fpascal-strings -O -I../../../include -c -o video.o video.c
In file included from video.c:92:
videoInternal.h:38: error: expected declaration specifiers or ‘...’ before ‘SeqGrabComponent’
videoInternal.h:38: error: expected declaration specifiers or ‘...’ before ‘SGChannel’
video.c:126: error: expected specifier-qualifier-list before ‘SeqGrabComponent’
video.c:199: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘MakeSequenceGrabber’
video.c:262: error: expected ‘)’ before ‘seqGrab’
video.c: In function ‘vdgGetSettings’:
video.c:299: error: ‘VdigGrab’ has no member named ‘sgchanVideo’
video.c:300: error: ‘VdigGrab’ has no member named ‘cpDepth’
video.c:301: error: ‘VdigGrab’ has no member named ‘cpCompressor’
video.c:302: error: ‘VdigGrab’ has no member named ‘cpSpatialQuality’
video.c:303: error: ‘VdigGrab’ has no member named ‘cpTemporalQuality’
video.c:304: error: ‘VdigGrab’ has no member named ‘cpKeyFrameRate’
video.c:305: warning: format ‘%ld’ expects type ‘long int’, but argument 3 has type ‘ComponentResult’
video.c:309: error: ‘VdigGrab’ has no member named ‘sgchanVideo’
video.c:309: error: ‘VdigGrab’ has no member named ‘cpFrameRate’
video.c:310: warning: format ‘%ld’ expects type ‘long int’, but argument 3 has type ‘ComponentResult’
video.c:315: error: ‘VdigGrab’ has no member named ‘vdCompInst’
video.c:315: error: ‘VdigGrab’ has no member named ‘sgchanVideo’
video.c: In function ‘vdgAllocAndInit’:
video.c:335: error: ‘struct _VdigGrab’ has no member named ‘seqGrab’
video.c:341: error: ‘struct _VdigGrab’ has no member named ‘seqGrab’
video.c:341: error: ‘struct _VdigGrab’ has no member named ‘sgchanVideo’
video.c: In function ‘vdgRequestSettings’:
video.c:355: error: ‘VdigGrab’ has no member named ‘seqGrab’
video.c:355: error: ‘VdigGrab’ has no member named ‘sgchanVideo’
video.c:355: error: too many arguments to function ‘RequestSGSettings’
video.c:356: warning: format ‘%ld’ expects type ‘long int’, but argument 3 has type ‘ComponentResult’
video.c:361: warning: format ‘%ld’ expects type ‘long int’, but argument 3 has type ‘ComponentResult’
video.c: At top level:
video.c:369: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘vdgGetDeviceNameAndFlags’
video.c: In function ‘vdgSetDestination’:
video.c:410: error: ‘VdigGrab’ has no member named ‘dstPort’
video.c: At top level:
video.c:414: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘vdgPreflightGrabbing’
video.c:539: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘vdgGetDataRate’
video.c:558: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘vdgGetImageDescription’
video.c: In function ‘vdgDecompressionSequenceBegin’:
video.c:585: error: ‘VdigGrab’ has no member named ‘vdImageDesc’
video.c:586: error: ‘VdigGrab’ has no member named ‘vdImageDesc’
video.c:599: error: ‘VdigGrab’ has no member named ‘dstImageSeq’
video.c:600: error: ‘VdigGrab’ has no member named ‘vdImageDesc’
video.c:610: error: ‘codecHighQuality’ undeclared (first use in this function)
video.c:610: error: (Each undeclared identifier is reported only once
video.c:610: error: for each function it appears in.)
video.c:611: error: ‘bestSpeedCodec’ undeclared (first use in this function)
video.c: In function ‘vdgDecompressionSequenceWhen’:
video.c:628: error: ‘VdigGrab’ has no member named ‘dstImageSeq’
video.c: In function ‘vdgDecompressionSequenceEnd’:
video.c:648: error: ‘VdigGrab’ has no member named ‘dstImageSeq’
video.c:655: error: ‘VdigGrab’ has no member named ‘dstImageSeq’
video.c:661: error: ‘VdigGrab’ has no member named ‘dstImageSeq’
video.c: At top level:
video.c:667: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘vdgStartGrabbing’
video.c:696: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘vdgStopGrabbing’
video.c:723: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘vdgPoll’
video.c:764: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘vdgReleaseBuffer’
video.c:778: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘vdgIdle’
video.c: In function ‘vdgReleaseAndDealloc’:
video.c:832: error: ‘VdigGrab’ has no member named ‘vdImageDesc’
video.c:833: error: ‘VdigGrab’ has no member named ‘vdImageDesc’
video.c:834: error: ‘VdigGrab’ has no member named ‘vdImageDesc’
video.c:837: error: ‘VdigGrab’ has no member named ‘vdCompInst’
video.c:838: error: ‘VdigGrab’ has no member named ‘vdCompInst’
video.c:839: warning: format ‘%ld’ expects type ‘long int’, but argument 3 has type ‘ComponentResult’
video.c:840: error: ‘VdigGrab’ has no member named ‘vdCompInst’
video.c:843: error: ‘VdigGrab’ has no member named ‘sgchanVideo’
video.c:844: error: ‘VdigGrab’ has no member named ‘seqGrab’
video.c:844: error: ‘VdigGrab’ has no member named ‘sgchanVideo’
video.c:845: warning: format ‘%ld’ expects type ‘long int’, but argument 3 has type ‘ComponentResult’
video.c:846: error: ‘VdigGrab’ has no member named ‘sgchanVideo’
video.c:849: error: ‘VdigGrab’ has no member named ‘seqGrab’
video.c:850: error: ‘VdigGrab’ has no member named ‘seqGrab’
video.c:851: warning: format ‘%ld’ expects type ‘long int’, but argument 3 has type ‘ComponentResult’
video.c:852: error: ‘VdigGrab’ has no member named ‘seqGrab’
video.c: In function ‘ar2VideoInternalThread’:
video.c:1059: warning: format ‘%ld’ expects type ‘long int’, but argument 3 has type ‘ComponentResult’
video.c: In function ‘ar2VideoOpen’:
video.c:1396: warning: passing argument 2 of ‘Gestalt’ from incompatible pointer type
video.c:1454: warning: passing argument 2 of ‘Gestalt’ from incompatible pointer type
video.c:1480: warning: format ‘%ld’ expects type ‘long int’, but argument 3 has type ‘ComponentResult’
video.c:1485: warning: format ‘%ld’ expects type ‘long int’, but argument 3 has type ‘ComponentResult’
video.c:1495: warning: format ‘%ld’ expects type ‘long int’, but argument 3 has type ‘ComponentResult’
video.c:1520: warning: format ‘%ld’ expects type ‘long int’, but argument 3 has type ‘ComponentResult’
video.c: In function ‘ar2VideoCapStart’:
video.c:1788: warning: format ‘%ld’ expects type ‘long int’, but argument 3 has type ‘ComponentResult’
video.c:1795: warning: format ‘%ld’ expects type ‘long int’, but argument 3 has type ‘ComponentResult’
video.c: In function ‘ar2VideoCapStop’:
video.c:1868: warning: format ‘%ld’ expects type ‘long int’, but argument 3 has type ‘ComponentResult’
make[2]: *** [video.o] Error 1
make[1]: *** [all] Error 2
make: *** [all] Error 2
As far as I know, the latest version of ARToolkit (2.7.1 I believe) will not compile from the command line in OS X 10.6. However, you can use Xcode (using the ARToolkit.xcodeproj project file) to compile and run ARToolkit if you change the active SDK to "Mac OS X 10.5".
Personally, I still find this a hindrance as I am developing a cross-platform application, so creating universal Makefiles becomes difficult when we are forced to use Xcode. Not to mention those pesky Xcode files that need to be tracked in source control... and that I would prefer to use a thiner editor than Xcode (such as macvim) and compile from the command line.
Can we be expecting a fix for this any time soon?