On Aug 27, 2013, at 4:26 AM, Anirudha Bose wrote:
I have been working on reusing mxe-octave [1] to natively build Octave for Mac
OS X. I have been able to complete the build process for the target
i686-apple-darwin11, but the executable usr/bin/octave doesn't launch Octave.
Here is the error I see.
dyld: Library not loaded: libcholmod.so
Referenced from: /Users/mac6-user1/./mxe-octave/usr/bin/octave
Reason: image not found
Trace/BPT trap: 5
I tried to trace back the error and saw that the library libcholmod.so belongs
to the package suitesparse. The following is a part of the log of suitesparse,
which I think is responsible for the above error.
ar rv libcholmod.a cholmod_aat.o cholmod_add.o cholmod_band.o
cholmod_change_factor.o cholmod_common.o cholmod_complex.o cholmod_copy.o
cholmod_dens$
ar: creating archive libcholmod.a
/opt/local/bin/ranlib: file: libcholmod.a(cholmod_ccolamd.o) has no symbols
/opt/local/bin/ranlib: file: libcholmod.a(cholmod_csymamd.o) has no symbols
/opt/local/bin/ranlib: file: libcholmod.a(cholmod_metis.o) has no symbols
/opt/local/bin/ranlib: file: libcholmod.a(cholmod_nesdis.o) has no symbols
/opt/local/bin/ranlib: file: libcholmod.a(cholmod_camd.o) has no symbols
/opt/local/bin/ranlib: file: libcholmod.a(cholmod_l_ccolamd.o) has no symbols
/opt/local/bin/ranlib: file: libcholmod.a(cholmod_l_csymamd.o) has no symbols
/opt/local/bin/ranlib: file: libcholmod.a(cholmod_l_metis.o) has no symbols
/opt/local/bin/ranlib: file: libcholmod.a(cholmod_l_nesdis.o) has no symbols
/opt/local/bin/ranlib: file: libcholmod.a(cholmod_l_camd.o) has no symbols
I suppose the problem is because Mac OS "ar" is not standard. I have also
noticed these warnings with other packages too. Can anyone tell me how to get a proper
build under Mac OS X?
[1] http://hg.octave.org/mxe-octave
- Anirudha
MacOSX's toolchain avoids the use of static libraries (I assume to avoid
violating GNU licenses). That is likely at the root of the problem.
In any event, I expect that both Fink and Macports include an "ar" with their
basic installation.