Showing posts with label i386. Show all posts
Showing posts with label i386. Show all posts

Sunday, January 17, 2010

Continuing with insight3d...

...Seems like my opencv was built for i386 architecture (despite being on a 64 bit architecture).
Manually changed CMakeCache.txt to read:

CMAKE_OSX_ARCHITECTURES:STRING=x86_64

did make clean and make, we'll see how it goes (takes a long time to compile, IIRC).

Didn't work right away.

Deleted contents of build dir, and rebuilding, using instructions at http://opencv.willowgarage.com/wiki/Mac_OS_X_OpenCV_Port, but also changing architecture to x86_64.

Getting trouble with carbon, because it is not 64 bits. Trying to disable carbon.
Uncommented #undef HAVE_CARBON something in cvconfig.h
That didn't work.

Modified the CMakefile for highgui to use gtk+ highgui code also under APPLE.
rebuilding (in src/highgui/CMakeLists.txt). This time it actually built.

Argh. Now I get the following when building insight3d:
Erland-Lewins-Mac-mini:src erl$ make
ar rc ../lib/libfeat.a imgfeatures.o utils.o sift.o kdtree.o minpq.o xform.o
ranlib ../lib/libfeat.a
gcc -O3 -I../include `pkg-config --cflags opencv` `pkg-config --cflags gtk+-2.0` `pkg-config --cflags gsl` siftfeat.c -o ../bin/siftfeat -L../lib -lfeat `pkg-config --libs opencv` `pkg-config --libs gtk+-2.0` `pkg-config --libs gsl`
ld: warning: in /sw/lib/libgtk-x11-2.0.dylib, file is not of required architecture
ld: warning: in /sw/lib/libgdk-x11-2.0.dylib, file is not of required architecture
ld: warning: in /sw/lib/libatk-1.0.dylib, file is not of required architecture
ld: warning: in /sw/lib/libgio-2.0.dylib, file is not of required architecture
ld: warning: in /sw/lib/libpangoft2-1.0.dylib, file is not of required architecture
ld: warning: in /sw/lib/libgdk_pixbuf-2.0.dylib, file is not of required architecture
ld: warning: in /sw/lib/libpangocairo-1.0.dylib, file is not of required architecture
ld: warning: in /sw/lib/libcairo.dylib, file is not of required architecture
ld: warning: in /sw/lib/libpango-1.0.dylib, file is not of required architecture
ld: warning: in /sw/lib/libfreetype.dylib, file is not of required architecture
ld: warning: in /sw/lib/libgobject-2.0.dylib, file is not of required architecture
ld: warning: in /sw/lib/libgmodule-2.0.dylib, file is not of required architecture
ld: warning: in /sw/lib/libglib-2.0.dylib, file is not of required architecture
ld: warning: in /sw/lib/libintl.dylib, file is not of required architecture
ld: warning: in /sw/lib/libgsl.dylib, file is not of required architecture
ld: warning: in /sw/lib/libgslcblas.dylib, file is not of required architecture
Undefined symbols:
"_gdk_screen_get_default", referenced from:
_display_big_img in libfeat.a(utils.o)
"_gdk_screen_get_height", referenced from:
_display_big_img in libfeat.a(utils.o)
"_gdk_init", referenced from:
_display_big_img in libfeat.a(utils.o)
"_gdk_screen_get_width", referenced from:
_display_big_img in libfeat.a(utils.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
make: *** [siftfeat] Error 1
This mix of 64 bit and 32 bit libraries is really frustrating. I imagine some will be 32 bit, others 64 bit. What is the best strategy? Force everything to be 32 bits? 64 bits?

The night ends in frustration.