help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Build failure: undefined symbol check_version(...)


From: Andrew Janke
Subject: Re: Build failure: undefined symbol check_version(...)
Date: Sun, 1 Jul 2018 03:32:18 -0400
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Thunderbird/52.8.0


On 7/1/18 2:51 AM, Carlo De Falco wrote:

On 1 Jul 2018, at 08:22, Andrew Janke <address@hidden> wrote:

(And does anyone know how to turn on a verbose build so I can see the exact 
command which is failing?
use

make V=1

see here [1] for more details.

c.

[1] https://autotools.io/automake/silent.html

Thanks, Carlo. That worked.

Here's the verbose output of the failing build step, in case that helps diagnose things:

$ make V=1
rm -f bits/stl_algo.h
/Applications/Xcode-9.4.app/Contents/Developer/usr/bin/make all-recursive
Making all in libgnu
/Applications/Xcode-9.4.app/Contents/Developer/usr/bin/make all-recursive
make[4]: Nothing to be done for `all-am'.
/bin/sh ./libtool  --tag=CXX   --mode=link g++ -std=gnu++11 -fPIC -D_THREAD_SAFE -pthread -Wall -W -Wshadow -Wold-style-cast -Wformat -Wpointer-arith -Wwrite-strings -Wcast-align -Wcast-qual  -g -O2 -avoid-version -module -no-undefined     -o libinterp/dldfcn/__delaunayn__.la -rpath /tmp/test-octave/lib/octave/5.0.0 libinterp/dldfcn/__delaunayn___la-__delaunayn__.lo   -lm libtool: link: g++ -std=gnu++11  -o libinterp/dldfcn/.libs/__delaunayn__.so -bundle libinterp/dldfcn/.libs/__delaunayn___la-__delaunayn__.o   -lm -pthread -g -O2   -pthread
Undefined symbols for architecture x86_64:
  "check_version(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
      _G__delaunayn__ in __delaunayn___la-__delaunayn__.o
  "err_disabled_feature(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:       F__delaunayn__(octave_value_list const&, int) in __delaunayn___la-__delaunayn__.o   "octave_dld_function::create(octave_value_list (*)(octave_value_list const&, int), octave::dynamic_library const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
      _G__delaunayn__ in __delaunayn___la-__delaunayn__.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [libinterp/dldfcn/__delaunayn__.la] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

I don't see any libinterp* or liboctinterp* libs referenced there; I'm guessing that's where the stuff from libinterp/corefcn/defun.cc would need to be pulled in from.

[~/local/repos/octave-BUILD-static]
$ for i in */*/.libs/*.o; do nm $i | grep check_ver | grep T; if [[ $? == 0 ]]; then echo "That was $i"; fi; done ✘ 1 0000000000000230 T __Z13check_versionRKNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEES7_
That was libinterp/corefcn/.libs/libcorefcn_la-defun.o
[~/local/repos/octave-BUILD-static]
$ grep libcorefcn_la-defun **/*.lo
libinterp/corefcn/libcorefcn_la-defun.lo:# libinterp/corefcn/libcorefcn_la-defun.lo - a libtool object file
libinterp/corefcn/libcorefcn_la-defun.lo:pic_object='.libs/libcorefcn_la-defun.o'


Cheers,
Andrew



reply via email to

[Prev in Thread] Current Thread [Next in Thread]