From: Ian B. <ian...@gm...> - 2014-07-13 12:47:53
|
CMake is finding dynamic libraries rather than static libraries, which I suspect is why I am having problems. But supposing that we were in control, how could we determine what C++ library Octave was compiled against? Ian On Sun, Jul 13, 2014 at 8:37 AM, Karl Wette <kar...@gm...> wrote: > My experience is that if you link against the Octave libraries, then the > Mac linker somehow figures out from them which C++ library to link against. > > > On 12 July 2014 20:43, Ian Bell <ian...@gm...> wrote: > >> Interesting. How do we in fact go about determining which runtime was >> used to build Octave and/or ensure that we are linking the same runtime? I >> am using CMake to build, so I figure some of this can be handled in CMake. >> I don't have to do any magic on the other platforms I use so far. So the >> basic plan is I need to supply a -libc++ to clang in CMake? Or what? >> >> >> On Sat, Jul 12, 2014 at 1:35 PM, Clemens Lang <ca...@ma...> wrote: >> >>> Hi, >>> >>> > The linking errors look like you're not linking against all the >>> required >>> > Octave libraries, it's usually something like -loctinterp -loctave >>> -lcruft. >>> > You can use the mkoctfile script/Octave function to find all of them. >>> >>> Indeed, this is a linking problem. Since you're on Mavericks and use >>> clang++, >>> where the default C++ runtime library is libc++, make sure the Octave >>> you're >>> trying to link against was also built against the same C++ runtime. The >>> error >>> messages you see look exactly like what you would see if you tried >>> building >>> swig-generated code with clang++ against libc++ while linking against an >>> Octave built against libstdc++. >>> >>> -- >>> Clemens Lang >>> MacPorts Developer >>> >> >> > |