Installng FastCGI++ - boost

I am installing fastcgi++ from http://www.nongnu.org/fastcgipp/
It required the boost libraries and I configure using the following
sudo ./configure --with-boost=/home/test/boost
But I get the below error. How do I fix? Its finding my boost. Hmmmm
checking for Boost's header version... 1_48
checking boost/bind.hpp usability... yes
checking boost/bind.hpp presence... yes
checking for boost/bind.hpp... yes
checking for the toolset name used by Boost for g++... gcc45 -gcc
checking boost/date_time/posix_time/posix_time.hpp usability... yes
checking boost/date_time/posix_time/posix_time.hpp presence... yes
checking for boost/date_time/posix_time/posix_time.hpp... yes
checking for the Boost date_time library... no
configure: error: cannot find the flags to link with Boost date_time

run
sudo apt-get install libboost-date-time1.40-dev
probably you'll also need other like libboost-system, find then with
apt-cache search libboost

I ran the following command, but I got the same error
sudo apt-get install libboost-dev libboost-date-time-dev
There were a lot of packages missing in my boost installation. My configure error was solved when I executed
sudo apt-get install libboost-all-dev
which installed all boost libraries. Be aware that it will install the most recent boost libraries in your repositories. In my case, it installed 1.46 version, while the current version in the boost website is 1.51.

There was a problem with the fastcgi++ configure script when using boost libraries > 1.49. Here's the bug ticket.
This has been fixed, so download fastcgi++ 2.1 or later. An alternative workaround is to use older versions of boost (as mentioned in the other answers).

What a pain,
My boost binary that came with my distribution repository does not included following dependencies too.
#libboost-syste-dev
#libboost-date-time-dev
#libboost-iostreams-dev
If you having the same trouble , I think it's better to download whole the boost source and compile it manually, rather than installing a missing dependency and running again ./configure to find out what would miss next.
NOTE: as mentioned in an earlier
#apt-get install libboost-all-dev
would make it work. But I didn't tested it yet.

Related

could not detect boost libraries when running ./configure when compiling bitcoin core code

This is the error I get:
checking for boostlib >= 1.58.0 (105800)... configure:
We could not detect the boost libraries (version 1.58.0 or higher).
If you have a staged boost library (still not installed) please specify $BOOST_ROOT in your environment and do not give a PATH to --with-boost option.
If you are sure you have boost installed, then check your version number looking in <boost/version.hpp>. See http://randspringer.de/boost for more documentation.
configure: error: Boost is not available!
I am on the latest version of macOS big sur and I installed boost with homebrew. I believe boost should be installed in usr/local/include, but for me, it is installed in /opt/homebrew/opt/boost. Could this be the issue? I used a symlink to go from usr/local/include to /opt/homebrew/opt/boost but it didn't work when I cded into the bitcoin folder and then ran ./configure.
export BOOST_ROOT=/opt/homebrew/opt/boost
./configure --with-gui=no --without-bdb --with-boost=$BOOST_ROOT
Your options may differ

configure: error: *** These critical programs are missing or too old: gcc make while installing glibc2.12 on Opensuse 42.3

I am trying to install glibc-2.12.2 because Haskell-stack specifically needs 2.12 version.
ldd --version
ldd (GNU libc) 2.26
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
The error is -
rajkumar#localhost:~/Downloads/glibc-2.12.2/build-tree> ../configure
configure: loading site script /usr/share/site/x86_64-unknown-linux-gnu
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld... /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld
checking version of /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld... 2.29.0.20170830, ok
checking for pwd... /usr/bin/pwd
checking for gcc... gcc
checking version of gcc... 7.2.1, bad
checking for gnumake... no
checking for gmake... gmake
checking version of gmake... 4.2.1, bad
checking for gnumsgfmt... no
checking for gmsgfmt... no
checking for msgfmt... msgfmt
checking version of msgfmt... 0.19.8.1, ok
checking for makeinfo... no
checking for sed... sed
checking version of sed... v. ?.??, bad
checking for autoconf... no
configure: error:
*** These critical programs are missing or too old: gcc make
*** Check the INSTALL file for required versions.
But I have gcc and make already installed.
rajkumar#localhost:~/Downloads/glibc-2.12.2/build-tree> sudo zypper install make
Loading repository data...
Reading installed packages...
'make' is already installed.
No update candidate for 'make-4.2.1-2.1.x86_64'. The highest available version is already installed.
Resolving package dependencies...
Nothing to do.
rajkumar#localhost:~/Downloads/glibc-2.12.2/build-tree> sudo zypper install gcc
Loading repository data...
Reading installed packages...
'gcc' is already installed.
No update candidate for 'gcc-7-2.4.x86_64'. The highest available version is already installed.
Resolving package dependencies...
Nothing to do.
I already have glibc 2.26 installed. How can I downgrade the version to 2.12 on opensuse.
I had the same issue and solved it following Mark Plotnick's suggestion in this post:
This may work: edit the configure file, look for 3.79* | 3.[89]*, change it to 3.79* | 3.[89]* | 4.*
The problem is that the .configure file is using an incomplete regular expression when verifying make's version. Adding the | 4.* makes sure it picks your (newer) installed version.
I am trying to install glibc-2.12.2 because Haskell-stack specifically needs 2.12 version.
This is exceedingly unlikely to be true: GLIBC is backwards-compatible (older programs continue to work on newer GLIBC versions).
I already have glibc 2.26 installed. How can I downgrade the version to 2.12 on opensuse.
If you succeed, you will render your system unbootable. You really don't want to do this.
Instead you should describe your actual problem.
P.S. Your gcc is certainly not too old. Rather, your GLIBC-2.12 configure is too old to understand that such a new gcc is new enough.

(Configuring Bitcoin core) configure: error: libdb_cxx headers missing

I've downloaded Bitcoin core from Github and am trying to set it up via instructions from Andreas Antonopoulos Bitcoin book Mastering Bitcoin Chapter 3 (The Bitcoin client)
Currently stuck on the configure step, when I run ./configure everything is looking good till it ends with the following error:
...
checking for stdio.h... yes
checking for stdlib.h... (cached) yes
checking for unistd.h... (cached) yes
checking for strings.h... (cached) yes
checking for sys/types.h... (cached) yes
checking for sys/stat.h... (cached) yes
checking for MSG_NOSIGNAL... no
checking for Berkeley DB C++ headers... no
configure: error: libdb_cxx headers missing
I'm using homebrew, how do I fix this error?
Ah figured it out, I didn't completely finish reading all the instructions in the build-osx.md file
#### Installing berkeley-db4 using Homebrew
The homebrew package for berkeley-db4 has been broken for some time. It will install without Java though.
Running this command takes you into brew's interactive mode, which allows you to configure, make, and install by hand:
```
$ brew install https://raw.github.com/mxcl/homebrew/master/Library/Formula/berkeley-db4.rb -–without-java
```
These rest of these commands are run inside brew interactive mode:
```
/private/tmp/berkeley-db4-UGpd0O/db-4.8.30 $ cd ..
/private/tmp/berkeley-db4-UGpd0O $ db-4.8.30/dist/configure -- prefix=/usr/local/Cellar/berkeley-db4/4.8.30 --mandir=/usr/local/Cellar/berkeley-db4/4.8.30/share/man --enable-cxx
/private/tmp/berkeley-db4-UGpd0O $ make
/private/tmp/berkeley-db4-UGpd0O $ make install
/private/tmp/berkeley-db4-UGpd0O $ exit
```
After exiting, you'll get a warning that the install is keg-only, which means it wasn't symlinked to /usr/local. You don't need it to link it to build bitcoin, but if you want to, here's how:
$ brew --force link berkeley-db4
brew install berkeley-db4
then
brew link berkeley-db4 --force
worked for me. not the ones proposed here
This is what worked for me:
sudo apt install libdb5.3++ libdb5.3++-dev
For those who uses fedora like me
sudo dnf install libdb-cxx-devel
and it may give warning about incompatible libdb version, you can ignore that with
./configure --with-incompatible-bdb

Cannot compile gearman - configure script fails

My system is Red Hat Enterprise Linux Server release 5.7 (Tikanga).
I am trying to run the configure script , and I am getting the following error:
checking for the toolset name used by Boost for g++... gcc41 -gcc
configure: Detected BOOST_ROOT; continuing with --with-boost=/raid/users/andrey/3rdParty/boost_1_47/
checking for Boost headers version >= 1.39.0... /users/andrey/3rdParty/boost_1_47/
checking for Boost's header version... 1_47
checking boost/program_options.hpp usability... no
checking boost/program_options.hpp presence... no
checking for boost/program_options.hpp... no
configure: error: cannot find boost/program_options.hpp
The documentation of configure says that boost is an optional package. So I tried to build it without boost:
configure -with-boost=no
This does not run as well and returns the following error:
checking for assert... no
checking for the toolset name used by Boost for g++... gcc41 -gcc
configure: Detected BOOST_ROOT=/users/andrey/3rdParty/boost_1_47/, but overridden by --with-boost=no
checking for Boost headers version >= 1.39.0... no
I've seen this question already, but it does not seem to help me.
Any idea?
in debian/ubuntu/mint you can use :
apt-get install libboost-all-dev
I have met the same issue when building the gearmand from source. The issue was fixed after I installed the package boost-devel, which will place needed headers into /usr/include/boost. Thanks and hope this may help.
Step "Installing Cygwin Package Dependencies needed for Gearman".
In addition to these packages:
gcc
gcc-c++
gcc-g++
make
libuuid1-devel
libiconv
if you did this you can:
reinstall cygwin and install this :
libuuid
boost
You can use following command to solve this issue.
yum install boost*
If you are using centos or fedora or redhat then above command will work.

boost library gives errors on ubuntu

I am trying to compile a package on ubuntu 8.1
when executing this command: ./configure I get the follwoing error:
checking for Boost headers version >= 103700... no
configure: error: cannot find Boost headers version >= 103700
knowing that I installed needed boost packages using these command:
$ apt-get install libboost-dev libboost-graph-dev libboost-iostreams-dev
Can anybody help please?
thank you. Now it works but i get another error when running ./configure: checking boost/iostreams/device/file_descriptor.hpp usability... yes checking boost/iostreams/device/file_descriptor.hpp presence... yes checking for boost/iostreams/device/file_descriptor.hpp... yes checking for the Boost iostreams library... no configure: error: cannot not find the flags to link with Boost iostreams any ideas please?
It could be that the version of boost that you're getting from the Ubuntu repository is too old (it's suggested here that the highest version for 8.10 is 1.35; it looks like your configure script is asking for 1.37). You might need to build from source; there's some more info in the answers to the question I linked to which will hopefully help.
UPDATE:
From your new error, it sounds like configure now can't find the boost_iostreams library. On my system it's /usr/lib/libboost_iostreams-mt.[a|so] - do you have those files (possibly in a different directory depending on where you installed boost)?
You can also try running ldconfig in case there's a missing symlink (from, say,
libboost_iostreams-mt.so.1.37.0 to libboost_iostreams-mt.so).
Is this configure one generated by GNU autoconf? If it is, there should be a file called config.log in the same directory which contains a list of all the commands configure tried to run when looking for things. If there's anything in there about boost_iostreams could you post it?
One totally random guess: some examples I've found on the web link to boost_iostreams without the multi-threading suffix -mt - but I don't have those on my machine at all. Maybe your configure script is running into the same problem?
UPDATE 2
The configure script seems to be looking for a single-threaded debug build of the boost iostreams library, which won't be produced by default when building from source on linux. Also, the default on linux is not to name the libraries based on the build configuration (so the libs you found in /usr/lib might not be the ones you installed from source unless you overrode this). This stuff isn't really explained on the boost website, I only found out by looking in the Jamroot file (bjam --help works too)! Anyway, to get a library with the right build configuration, and named correctly, I need to go into the root of the boost source tree and run:
sudo bjam --with-iostreams --layout=tagged variant=debug threading=single install
For me this puts the libraries (libboost_iostreams-d.a and the shared versions) into /usr/local/lib where ld will find them by default, so this should be fine. If you need them to go somewhere else you can use the --prefix=... option to bjam eg. if you want them in /usr/lib you can do --prefix=/usr. If the package you're building needs more boost libraries you can remove the --with-iostreams and then they'll all be built (or replace iostream with the name of each other library you need).
A side note: I had to install the libbz2-dev package to get boost iostreams to build - it's easy to miss the error here if you build all of boost as there's so much output!

Resources