file isn't architecture beeing linked
-
Hallo,
ich versuche gerade, OpenCV zu kompilieren (unter OS X), kriege aber Fehler vom linker:
z.B.:
ld: warning: in /sw/lib/libjpeg.dylib, file was built for i386 which is not the architecture being linked (x86_64)Als Compiler wird c++-4.2 benutzt, was mit -dumpmachine "i686-apple-darwin" ausgibt, wenn ich allerdings ohne spezielle Angabe kompiliere, sind die *.o dateien x86_64. (?)
(Das ist doch merkwürdig, ich kenn mich damit nicht wirklich aus, aber i686 klingt irgendwie mehr wie i386 als x86...)
Das lässt sich umgehen mithilfe der angabe von "-arch i386", was zu den Bibliotheken passen würde.Die makefiles werden mit cmake erstellt und ich denke ich verstehe etwas falsch:
ich dachte:cmake CMAKE_CXX_COMPILER="anderer compiler" oder CMAKE_CXX_FLAGS="-arch i386" oder OSX_ARCHITECTURES="i386"würde helfen,
aber das ergebnis ist immer dasselbe.Die manpage sagt dazu z.b.:
CMAKE_SYSTEM_PROCESSOR
The name of the CPU CMake is building for.On systems that support uname, this variable is set to the out-
put of uname -p, on windows it is set to the value of the envi-
ronment variable PROCESSOR_ARCHITECTURE[Edit] uname -p gibt auch i386 aus.
Dann wäre es doch sinnvoll, auch mit -arch i386 zu kompilieren.
Wie auch immer, wie mache ich es richtig? es müsste doch eigentlich so funktionieren.Vielen Dank im voraus!