[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