Skip to content
This repository has been archived by the owner on Sep 1, 2023. It is now read-only.

Build fails on Ubuntu 15.10 with gcc 4.9 #981

Closed
ghost opened this issue Jun 17, 2016 · 1 comment · Fixed by #984
Closed

Build fails on Ubuntu 15.10 with gcc 4.9 #981

ghost opened this issue Jun 17, 2016 · 1 comment · Fixed by #984

Comments

@ghost
Copy link

ghost commented Jun 17, 2016

[1] https://discourse.numenta.org/t/when-building-nupic-getting-error-undefined-references-to-yaml-in-64-bit-ubuntu/747/3
[2] https://github.com/numenta/nupic/wiki/Compiling-NuPIC-on-Ubuntu-15

Example build error message:

/tmp/ccnUaX5x.ltrans29.ltrans.o::function YAML::Emitter&
YAML::Emitter::WriteIntegralType(int): error: undefined reference to
'YAML::Emitter::PostWriteIntegralType(std::_cxx11::basicstringstream,
std::allocator > const&)'
collect2: error: ld returned 1 exit status
test/CMakeFiles/run-tests.dir/build.make:211: recipe for target
'test/run-tests' failed

You will find some indicators in the build log, e.g.:

Linking CXX static library libnupic_core_solo.a
/usr/bin/ar: CMakeFiles/nupic_core_solo.dir/nupic/proto/BitHistory.capnp.c++.o: plugin needed to handle lto object
/usr/bin/ar: CMakeFiles/nupic_core_solo.dir/nupic/proto/ClaClassifier.capnp.c++.o: plugin needed to handle lto object
@ghost
Copy link
Author

ghost commented Jun 17, 2016

Since GCC 4.7, GCC provides its own wrappers around ar, nm and ranlib (gcc-ar, gcc-nm, gcc-ranlib), which should be used for builds with link-time optimization (LTO). Since GCC 4.9, using them is actually necessary for LTO builds using convenience libraries to succeed (non-gcc versions don't find the required LTO plugin).

*** Update: Fix in progress ***

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
1 participant