boost-locale can't find icu/iconv

139 views Asked by At

I'm crossbuilding boost-locale 1.71.0 for powerpc-aix target

crosscompiler powerpc-ibm-aix7.1.0.0-g++ (GCC) 4.8.3

Build machine x64-linux

libiconv lib is located at /opt/crossaix/usr/lib/libiconv.a

iconv.h header is located at /opt/crossaix/usr/include/iconv.h

steps, based on this tutorial https://www.boost.org/build/doc/html/bbv2/tasks/crosscompile.html :

./bootstrap.sh --with-libraries=locale

# replace in file project-config.jam the line "using gcc ;" with the line "using gcc : powerpc : /opt/crossaix/bin/powerpc-ibm-aix7.1.0.0-g++ ; "
sed -i 's,using gcc ;,using gcc : powerpc : /opt/crossaix/bin/powerpc-ibm-aix7.1.0.0-g++ ;,' project-config.jam 

./b2 toolset=gcc-powerpc target-os=aix -sICONV_PATH=/opt/crossaix/usr/

The result:

Performing configuration checks

    - default address-model    : 32-bit
    - default architecture     : power

Building the Boost C++ Libraries.


    - iconv (libc)             : no
    - iconv (separate)         : no
    - icu                      : no
    - icu (lib64)              : no
- Boost.Locale needs either iconv or ICU library to be built.
- Boost.Locale needs either iconv or ICU library to be built.
- Boost.Locale needs either iconv or ICU library to be built.
- Boost.Locale needs either iconv or ICU library to be built.

Component configuration:

    - atomic                   : not building
    - chrono                   : not building
    - container                : not building
    - context                  : not building
    - contract                 : not building
    - coroutine                : not building
    - date_time                : not building
    - exception                : not building
    - fiber                    : not building
    - filesystem               : not building
    - graph                    : not building
    - graph_parallel           : not building
    - headers                  : not building
    - iostreams                : not building
    - locale                   : building
    - log                      : not building
    - math                     : not building
    - mpi                      : not building
    - program_options          : not building
    - python                   : not building
    - random                   : not building
    - regex                    : not building
    - serialization            : not building
    - stacktrace               : not building
    - system                   : not building
    - test                     : not building
    - thread                   : not building
    - timer                    : not building
    - type_erasure             : not building
    - wave                     : not building

...found 2 targets...


The Boost C++ Libraries were successfully built!

The following directory should be added to compiler include paths:

    /home/ibse/Projects/boost_1_71_0

The following directory should be added to linker library paths:

    /home/ibse/Projects/boost_1_71_0/stage/lib

Although it says that the build was successful, in fact the libraries are not built and the folder /home/ibse/Projects/boost_1_71_0/stage/lib is empty.

This is because the icu/iconv were not found:

    - iconv (libc)             : no
    - iconv (separate)         : no
    - icu                      : no
    - icu (lib64)              : no
- Boost.Locale needs either iconv or ICU library to be built.
- Boost.Locale needs either iconv or ICU library to be built.
- Boost.Locale needs either iconv or ICU library to be built.
- Boost.Locale needs either iconv or ICU library to be built.

, although I specified the path to iconv (-sICONV_PATH=/opt/crossaix/usr/)

I also tried to specify the full path to the library, but it didn't help: -sICONV_PATH=/opt/crossaix/usr/lib/libiconv.a

0

There are 0 answers