From: <lan...@qw...> - 2006-03-28 21:25:22
|
> lan...@qw... wrote: > >> NOOB ALERT >> >> Attempting to install on OS X 10.4.5 and had a problem. Here are >> the last few lines from the "make" and "make install" lines which >> might be helpful. >> >> (Also, the make install command (earlier, not here) failed on Line >> 1 apparently because there was a space in a path name. >> Specifically, my path contained the string "Plotting Stuff" which >> I replaced with "Plotting_Stuff".) This happens a lot with Unix >> scripts running on Mac systems--a bit of a culture clash.) >> > Did you rerun the configure script? (Spaces in directory names are > a nuisance, as spaces are also used > to separate commands and their arguments in scripts ...) Yes--I ran these commands twice, once with the space and once without the space: ./configure --disable-dyndrivers --disable-f77 make make install The options for configure are as directed in README.release when compiling for the AquaTerm driver on OS X. Can I re-run these commands without worry, and without deleting the files that they create? > >> >> ld: Undefined symbols: >> .objc_class_name_NSAutoreleasePool >> .objc_class_name_NSConstantString >> .objc_class_name_NSMutableAttributedString >> .objc_class_name_NSNumber >> .objc_class_name_NSString >> __NSConstantStringClassReference >> /usr/bin/libtool: internal link edit command failed > > It is clear that something is missing, but the names shown here are > new to me. > Perhaps this has to do with the compiler you are using? Identifier names beginning with NS, on OS X, are usually part of the API. "NS" is a carryover from NextStep. So words such as NSAutoreleasePool, for example, are easily found in Apple's docs. Looking at the documentation for NSAutoreleasePool reveals that it is in the Foundation framework. Doing nm Foundation turns up 42 lines containing the string NSAutoreleasePool, one of which is 00000000 A .objc_class_name_NSAutoreleasePool So it looks to me like the linker isn't seeing the Foundation framework. ... a bit later ... I just re-built but with this configure command: ./configure --disable-f77 That is, I omitted the --disable-dyndrivers option. The problem with undefined symbols at this stage has disappeared. Here is the result of make, after the above configure command: [AlBook:Programming/Plotting_Stuff/plplot-5.5.3] me% make make all-recursive Making all in libltdl make all-am /bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c -o ltdl.lo ltdl.c gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c ltdl.c -fno-common -DPIC - o .libs/ltdl.o gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -c ltdl.c -o ltdl.o >/dev/null 2>&1 /bin/sh ./libtool --tag=CC --mode=link gcc -g -O2 -o libltdlc.la ltdl.lo -ldl rm -fr .libs/libltdlc.a .libs/libltdlc.la ar cru .libs/libltdlc.a .libs/ltdl.o ranlib .libs/libltdlc.a creating libltdlc.la (cd .libs && rm -f libltdlc.la && ln -s ../libltdlc.la libltdlc.la) Making all in fonts make[2]: Nothing to be done for `all'. Making all in lib Making all in csa make[3]: Nothing to be done for `all'. make[3]: Nothing to be done for `all-am'. Making all in include make all-am Making all in src make[2]: Nothing to be done for `all'. Making all in data make[2]: Nothing to be done for `all'. Making all in bindings Making all in c++ /bin/sh ../../libtool --tag=CXX --mode=link g++ -g -O2 -o libplplotcxxd.la -rpath /usr/local/lib -version-info 11:0:2 -rpath / usr/local/lib -no-undefined ../../src/libplplotd.la plstream.lo -lm rm -fr .libs/libplplotcxxd.9.2.0.dylib g++ -dynamiclib -single_module -o .libs/libplplotcxxd. 9.2.0.dylib .libs/plstream.o ../../src/.libs/libplplotd.dylib / Applications/Programming/Plotting_Stuff/plplot-5.5.3/lib/csa/.libs/ libcsirocsa.dylib -lm -install_name /usr/local/lib/libplplotcxxd. 9.dylib -compatibility_version 12 -current_version 12.0 g++: installation problem, cannot exec `c++filt3': No such file or directory make[3]: *** [libplplotcxxd.la] Error 1 make[2]: *** [all-recursive] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 I have seen this problem with c++filt3 before (not with PLplot) and I have seen others discuss it in other contexts, but I still don't know how to fix it. I believe that it might be a problem created by Apple. Indeed, there is no c++filt3 on my computer, but there is a /usr/bin/c ++filt; the manpage for c++filt says "Demangle C++ and Java symbols." Continuing anyway, here is the result of make install: [AlBook:Programming/Plotting_Stuff/plplot-5.5.3] me% make install Making install in libltdl test -z "/usr/local/lib" || /Applications/Programming/Plotting_Stuff/ plplot-5.5.3/libltdl/install-sh -d "/usr/local/lib" test -z "/usr/local/include" || /Applications/Programming/ Plotting_Stuff/plplot-5.5.3/libltdl/install-sh -d "/usr/local/include" Making install in fonts make[2]: Nothing to be done for `install-exec-am'. make[2]: Nothing to be done for `install-data-am'. Making install in lib Making install in csa test -z "/usr/local/lib" || /Applications/Programming/Plotting_Stuff/ plplot-5.5.3/cf/install-sh -d "/usr/local/lib" /bin/sh ../../libtool --mode=install /usr/bin/install -c 'libcsirocsa.la' '/usr/local/lib/libcsirocsa.la' /usr/bin/install -c .libs/libcsirocsa.0.0.1.dylib /usr/local/lib/ libcsirocsa.0.0.1.dylib install: /usr/local/lib/libcsirocsa.0.0.1.dylib: Permission denied make[3]: *** [install-libLTLIBRARIES] Error 71 make[2]: *** [install-am] Error 2 make[1]: *** [install-recursive] Error 1 make: *** [install-recursive] Error 1 [AlBook:Programming/Plotting_Stuff/plplot-5.5.3] me% Ideas? Has anyone recently built for OS X? Jerry > > Regards, > > Arjen |