Closed arianna-cox closed 10 months ago
Hi @arianna-cox ,
The version checking comes from file configure.ac
actually; more precisely from line 41
AX_BOOST_BASE([1.48.0], [], AC_MSG_ERROR([BOOST 1.48 or later is required]))
The m4 macro AX_BOOST_BASE
is defined inside folder m4
. This is the file that needs to be investigated and potentially changed, if necessary.
Could you please try:
# Test #1
./configure --with-boost=<directory_containing_cross-compiled_boost>
# Test #2
./configure --with-boost-libdir=<directory_containing_cross-compiled_boost>
I can try those tests now, but changing the name of the boost root directory from "boost" to "boost_1_85_0" (and setting the environment variable $BOOST_ROOT to the corresponding file path) did solve my issues.
I've done test 1 and 2.
configure: error: Could not find a version of the Boost::System library!
configure: We could not detect the boost libraries (version 1.48.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 1.48 or later is required
Since I have a staged boost library that is not installed, I didn't use the --with-boost option or --with-boost-libdir option. Instead, I set the environment variable $BOOST_ROOT to the path of the boost root. This is a successful solution only in the case where the boost root folder is named "boost_1_85_0". It does not work in the case where the folder name doesn't include the version, for example if it is called "boost". If the version is not included in the folder name, it returns the error:
expr: syntax error: unexpected argument '0' configure: We could not detect the boost libraries (version 1.48.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 1.48 or later is required
Also, if I leave a trailing backslash on the $BOOST_ROOT environment variable then there is an additional error:
expr: syntax error: unexpected argument '\([0-9]\.[0-9]\)'
This error is why I initially looked at line 6067 of the configure script (which is created by the bootstrap script).
You might be stepping a bit too far from the beaten path here :-) If you want to debug the configure script, please don't refer to configure.ac
and the files inside the m4
folder. The configure
script itself is locally-generated, and may differ from one system to another.
I am not willing to maintain cross-compilation support for the mmbtools. As you managed to compile odr-dabmux successfully, I'll close this ticket.
I cross-compiled boost and then wanted to cross-compile ODR-DabMux. I set the environment variable $BOOST_ROOT to the path of my boost directory. However, when running the ODR-DabMux ./configure script it continued to say I did not have the correct version. It turns out this is because the ODR-DabMux configure script searches for boost's version number using the folder name provided in $BOOST_ROOT, rather than searching for it in the version.hpp file. I fixed this problem by renaming my folder to include the version number, however this seems like a flaw in the configure script. The relevant section of the configure script starts at line 6067. See the photo: