From: Richard R. <ri...@cc...> - 2007-04-15 17:15:33
|
Hi guys, There seem to be some compilation problems with Orca 2.3.0 on OS X, with Ice 3.2.0, and cmake 2.4.6. __No 1:__ When linking libOrcaIce, there are some undefined symbols: Linking CXX shared library libOrcaIce.dylib ld: Undefined symbols: __ZN7orcaice14toHomeIdentityERKN4orca15FQComponentNameE __ZN7orcaice15toInterfaceNameERKSs __ZN7orcaice8toStringERKN4orca11FQTopicNameE __ZN7orcaice8toStringERKN4orca15FQInterfaceNameE __ZN7orcaice16timeDiffAsDoubleERKN4orca4TimeES3_ __ZN7orcaice6getNowEv __ZN7orcaice11toStringSeqERKSsc __ZN7orcaice14toTimeDurationERKSsRN4orca4TimeE __ZN7orcaice16toCartesianPointERKSsRN4orca14CartesianPointE __ZN7orcaice8toSize2dERKSsRN4orca6Size2dE __ZN7orcaice8toSize3dERKSsRN4orca6Size3dE __ZN7orcaice9toFrame2dERKSsRN4orca7Frame2dE __ZN7orcaice9toFrame3dERKSsRN4orca7Frame3dE __ZN8Glacier228CannotCreateSessionExceptionD1Ev __ZTVN8Glacier228CannotCreateSessionExceptionE __ZN7orcaice8setToNowERN4orca4TimeE __ZN7orcaice8toStringERKN4orca15FQComponentNameE __ZN7orcaice15toComponentNameERKSs __ZN7orcaice13toStatusTopicERKN4orca15FQComponentNameE __ZN7orcaice13toTracerTopicERKN4orca15FQComponentNameE __ZN7orcaice8toStringERKN4orca10TracerDataE /usr/bin/libtool: internal link edit command failed These symbols are found in orcaobj/stringutils.cpp (in Orca), and in libGlacier2 (in Ice). I was able to get it to compile by manually building orcaobj before orceice, and adding -lOrcaObjects and - lGlacier2 to orcaice/...../link.txt. I don't know how to modify cmake builds, so I don't have a patch for you. __No 2:......__ Many more cases of undefined symbols, including needing to link to: player libs, other orca libs, libGlacier2 Most of the time, it's other orca libs that need to be linked in, but they are not in the library search path, I have to add the path for each one manually. __No 3:__ unsetenv returns void on OS X, so the #ifdef __QNX__ lines in orcaice/ test/propfiletest.cpp should also include OSX (not sure what symbol would be defined for OSX) __No 4:__ isnan not defined in orcapathplan/pathplanutils.h Fix: added int isnan(double x); For some reason, #include <math.h> didn't fix this (some other header messing up inclusion of this?) __No 5:__ In src/libs/orcaqgui2d/paintutils.{h,cpp}, move the constant definitions of _historyMinDistance, _historyMaxDistance, and _historyMaxLength from the .h file to the .cpp. Having the = part in the .h can cause problems when the .h is included more than once in the same link target. (I'm getting an undefined symbol __ZN10orcaqgui2d11PoseHistory19_historyMaxDistanceE because of this) I assume these are OS X problem only. I haven't been able to try it out on Linux yet, but I assume it works there. Any idea what would cause the problem? I am using one cmake version tick later than it says orca was tested with, could this make the difference? It doesn't seem like it. Please let me know if I can send any more information, such as cmake- generated files, etc, that would help you. Thanks, Richard Roberts |