Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

compilation on debian failed #136

Closed
acmodeu opened this issue Apr 6, 2016 · 21 comments
Closed

compilation on debian failed #136

acmodeu opened this issue Apr 6, 2016 · 21 comments

Comments

@acmodeu
Copy link

acmodeu commented Apr 6, 2016

Tried to compile on no-gui debian server Linux version 3.16.0-4-amd64 (debian-kernel@lists.debian.org) (gcc version 4.8.4 (Debian 4.8.4-1) ) #1 SMP Debian 3.16.7-ckt25-1 (2016-03-06) using instructions given in https://github.com/airdcpp-web/airdcpp-webclient/blob/master/INSTALL.md

  1. sudo apt-get install gcc g++ git cmake npm python pkg-config
  2. sudo apt-get install pkg-config libbz2-dev zlib1g-dev libssl-dev libstdc++6 libminiupnpc-dev libnatpmp-dev libtbb-dev libgeoip-dev libboost1.58-dev libboost-regex1.58 libboost-thread1.58 libboost-system1.58 libleveldb-dev
  3. sudo apt-get install libwebsocketpp-dev
  4. git clone https://github.com/airdcpp-web/airdcpp-webclient.git
  5. cd airdcpp-webclient
  6. cmake .
  7. Get the following error after make -j1 command

../airdcpp-core/libairdcpp.so.1.0.2: undefined reference to boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > > >::maybe_assign(boost::match_results<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > > > const&)' ../airdcpp-core/libairdcpp.so.1.0.2: undefined reference toboost::re_detail::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::string>, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::string> > >, boost::regex_traits<char, boost::cpp_regex_traits > >::construct_init(boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits > > const&, boost::regex_constants::_match_flags)'
collect2: error: ld returned 1 exit status
airdcppd/CMakeFiles/airdcppd.dir/build.make:202: recipe for target 'airdcppd/airdcppd' failed
make[2]: *** [airdcppd/airdcppd] Error 1
CMakeFiles/Makefile2:207: recipe for target 'airdcppd/CMakeFiles/airdcppd.dir/all' failed
make[1]: *** [airdcppd/CMakeFiles/airdcppd.dir/all] Error 2
Makefile:117: recipe for target 'all' failed
make: *** [all] Error 2

Is it however possible or i just wasting my time? Can you provide me with instructions cause I'm quite a noobie with all this compiling stuff.

@maksis
Copy link
Member

maksis commented Apr 6, 2016

Could you post the output of cmake .? Were there any other errors while compiling?

@acmodeu
Copy link
Author

acmodeu commented Apr 6, 2016

Неre is my terminal log from git clone https://github.com/airdcpp-web/airdcpp-webclient.git to the error.
terminal.zip

@maksis
Copy link
Member

maksis commented Apr 6, 2016

The log looks normal otherwise and yes, the client is meant to be supported on Debian.

I'll check tomorrow if I can figure something out.

@acmodeu
Copy link
Author

acmodeu commented Apr 6, 2016

Thanks in advance, that would be great.

@maksis
Copy link
Member

maksis commented Apr 7, 2016

I tried to compile the client on Debian and there were no errors.

Could you post the following outputs:

cat airdcpp-core/CMakeFiles/airdcpp.dir/link.txt
cat airdcppd/CMakeFiles/airdcppd.dir/link.txt
ldconfig -p | grep libboost_regex

@maksis
Copy link
Member

maksis commented Apr 7, 2016

I also get the following errors when I try to use your package installation command:

E: Unable to locate package libboost1.58-dev
E: Couldn't find any package by regex 'libboost1.58-dev'
E: Unable to locate package libboost-regex1.58
E: Couldn't find any package by regex 'libboost-regex1.58'
E: Unable to locate package libboost-thread1.58
E: Couldn't find any package by regex 'libboost-thread1.58'
E: Unable to locate package libboost-system1.58
E: Couldn't find any package by regex 'libboost-system1.58

Packages for Ubuntu 14.04 were installed fine. Make sure that you don't mix boost packages with different versions as it will very likely cause such error.

@acmodeu
Copy link
Author

acmodeu commented Apr 7, 2016

Looks like I haven't done something before.

les@sync:$ cat airdcpp-core/CMakeFiles/airdcpp.dir/link.txt
cat: airdcpp-core/CMakeFiles/airdcpp.dir/link.txt: No such file or directory
les@sync:
$ cat airdcppd/CMakeFiles/airdcppd.dir/link.txt
cat: airdcppd/CMakeFiles/airdcppd.dir/link.txt: No such file or directory
les@sync:~$ ldconfig -p | grep libboost_regex
bash: ldconfig: command not found

Those 1.58 packages are from testing branch. I may try to use stable.

@maksis
Copy link
Member

maksis commented Apr 7, 2016

Try running ldconfig -p | grep libboost_regex with root permissions. Ensure that the version number you see is the same as you have in file /usr/include/boost/version.hpp.

@acmodeu
Copy link
Author

acmodeu commented Apr 7, 2016

les@sync:~$ su
Password:
root@sync:/home/les# ldconfig -p | grep libboost_regex
libboost_regex.so.1.58.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_regex.so.1.58.0
libboost_regex.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libboost_regex.so
root@sync:/home/les# cat /usr/include/boost/version.hpp
// Boost version.hpp configuration header file ------------------------------//

// (C) Copyright John maddock 1999. Distributed under the Boost
// Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

// See http://www.boost.org/libs/config for documentation

#ifndef BOOST_VERSION_HPP
#define BOOST_VERSION_HPP

//
// Caution: this is the only Boost header that is guaranteed
// to change with every Boost release. Including this header
// will cause a recompile every time a new Boost version is
// used.
//
// BOOST_VERSION % 100 is the patch level
// BOOST_VERSION / 100 % 1000 is the minor version
// BOOST_VERSION / 100000 is the major version

#define BOOST_VERSION 105800

//
// BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION
// but as a string in the form "x_y[_z]" where x is the major version
// number, y is the minor version number, and z is the patch level if not 0.
// This is used by <config/auto_link.hpp> to select which library version to link to.

#define BOOST_LIB_VERSION "1_58"

#endif

@maksis
Copy link
Member

maksis commented Apr 7, 2016

Did you try using libraries from stable?

@acmodeu
Copy link
Author

acmodeu commented Apr 7, 2016

I'm on it now.

@maksis
Copy link
Member

maksis commented Apr 7, 2016

My understanding is that the next version of Debian has its libraries compiled with GCC 5 and the library format isn't fully compatible with GCC 4.9 that you are using for compiling.

@acmodeu
Copy link
Author

acmodeu commented Apr 7, 2016

Backed up from snapshot, repeated all the process with 1.55 installed, failed with something new:

-- Installing Web UI
Installing Web UI (~1.0.0)
airdcpp-webui@1.0.4 node_modules/airdcpp-webui
Web UI was installed successfully
-- Configuring incomplete, errors occurred!
See also "/home/les/airdcpp-webclient/CMakeFiles/CMakeOutput.log".
See also "/home/les/airdcpp-webclient/CMakeFiles/CMakeError.log".

cmakelogs.zip

@maksis
Copy link
Member

maksis commented Apr 7, 2016

Could you post the full console output?

@acmodeu
Copy link
Author

acmodeu commented Apr 7, 2016

Ok, I managed to compile on a brand new debian test machine so I think I can work something out on my regular one. Many thanks for the help. However please don't close the thread yet.

@acmodeu
Copy link
Author

acmodeu commented Apr 7, 2016

I wasn't able to install 1.55 packages on my machine. Can I move compiled binaries from one machine to another?

@maksis
Copy link
Member

maksis commented Apr 7, 2016

That should work, but it will still require the boost libraries to be available

@acmodeu
Copy link
Author

acmodeu commented Apr 7, 2016

Could you please pinpoint to what should i do then?

@maksis
Copy link
Member

maksis commented Apr 7, 2016

Naturally the best option is to get to system in to a state where there are no packages mixed up from different OS versions as it's hard for anyone to anticipate how such system behaves.

If the system is fully upgraded to the testing version, uninstall GCC 4.9 and use GCC 5 that is the default compiler in Debian 9. Delete the client folder and re-download it to avoid issues with cached data.

@acmodeu
Copy link
Author

acmodeu commented Apr 7, 2016

Ok, thank you. Luckily I was able to start compiled binary on the problem machine.

@maksis
Copy link
Member

maksis commented Apr 7, 2016

👍

# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

No branches or pull requests

2 participants