Comments (13)
Hi Paul, there should be a line inside the build.log file starting with "Building with TOOLSET=...", what does it say in your case?
Also, what does 'uname -a' says?
from boost-for-android.
It uses NDK version 8e, but I'm afraid I'm away from the machine to give
you the exact output. I'll get back to you on that.
On Dec 17, 2013 7:48 PM, "Peter Jankuliak" [email protected] wrote:
Hi Paul, there should be a line inside the build.log file starting with
"Building with TOOLSET=...", what does it say in your case?Also, what does 'uname -a' says?
—
Reply to this email directly or view it on GitHubhttps://github.com//issues/58#issuecomment-30778595
.
from boost-for-android.
Output of build.log
:
Building with TOOLSET=gcc-androidR8e CXXPATH=../android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++ CXXFLAGS=
uname -a
:
Linux ubuntu 3.8.0-29-generic # 42~precise1-Ubuntu SMP Wed Aug 14 16:19:23 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
Incidentally, I'm getting the same problem using cygwin, but since my configuration there is a bit more complex, it's probably easier to figure out what's going wrong on Ubuntu.
Would it make any difference to replace the execution of arm-linux-androideabi-g++
with its full path in user-config-boost-1_53_0.jam
?
from boost-for-android.
I've gone ahead and given your suggestion in issue #27 a swing, but it appears that this gives the same problem.
I changed user-config-boost-1_53_0.jam
to invoke arm-linux-androideabi-g++
with its absolute path on line 90. I've checked that the path is correct, and that the config is applied correctly into boost_1_53_0/tools/build/v2/user-config.jam
.
This gives me:
error: toolset gcc initialization:
error: provided command 'arm-linux-androideabi-g++' not found
error: initialized from /home/paul/boost/Boost-for-Android/boost_1_53_0/tools/build/v2/user-config.jam:85
It however points to line 85, which is the androidR8b
target. This is especially strange as the toolset is specifically set to:
TOOLSET=gcc-androidR8e
I went ahead and changed the entry on line 47 of user-config-boost-1_53_0.jam
to use the absolute path as well.
Progress! It now gives the following output, which I'm still looking into:
gcc.compile.c++ bin.v2/libs/system/build/gcc-androidR8e/release/link-static/threading-multi/error_code.o
In file included from ./boost/config.hpp:40:0,
from ./boost/system/config.hpp:13,
from libs/system/src/error_code.cpp:18:
./boost/config/select_stdlib_config.hpp:18:21: fatal error: cstddef: No such file or directory compilation terminated.
"/home/paul/boost/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++" -ftemplate-depth-128 -D__arm__ -D_REENTRANT -D_GLIBCXX__PTHREADS -O3 -finline-functions -Wno-inline -Wall -pedantic -fexceptions -frtti -fpic -ffunction-sections -funwind-tables -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -Wno-psabi -march=armv5te -mtune=xscale -msoft-float -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -I../android-ndk-r8e/platforms/android-9/arch-arm/usr/include -Wa,--noexecstack -DANDROID -D__ANDROID__ -DNDEBUG -O2 -g -I../android-ndk-r8e/sources/cxx-stl/gnu-libstdc++/4.6/include -I../android-ndk-r8e/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi/include -fvisibility=hidden -fvisibility-inlines-hidden -fdata-sections -pthread -DBOOST_ALL_NO_LIB=1 -DBOOST_SYSTEM_STATIC_LINK=1 -DNDEBUG -I"." -c -o "bin.v2/libs/system/build/gcc-androidR8e/release/link-static/threading-multi/error_code.o" "libs/system/src/error_code.cpp"...failed gcc.compile.c++ bin.v2/libs/system/build/gcc-androidR8e/release/link-static/threading-multi/error_code.o...
...failed updating 1 target...
...updated 10 targets...
ERROR: Failed to build boost for android!
from boost-for-android.
It seems that the NDK include path isn't being set correctly. I believe that this may be related to the other path problems described in this issue.
from boost-for-android.
You're right, it's as if the jam script completely ignores the variables set inside build-boost.sh. I'm gonna make a guess, but try changing the shebang line (first line) in the build-boost.sh script to #!/bin/bash instead of #!/bin/sh
from boost-for-android.
I replaced the first line in both build-android.sh and build-common.sh with
#!/bin/bash, and I'm afraid it yields the same result, failing on "error:
provided command 'arm-linux-androideabi-g++' not found".
If you have any other suggestions, let me know!
On Sat, Dec 21, 2013 at 4:07 AM, Peter Jankuliak
[email protected]:
You're right, it's as if the script completely ignores the variables set
inside the script. I'm gonna make a wild guess, but try changing the
shebang line (first line) in the build-boost.sh script to #!/bin/bash
instead of #!/bin/sh—
Reply to this email directly or view it on GitHubhttps://github.com//issues/58#issuecomment-31055453
.
from boost-for-android.
Your remark got me thinking, and I output what was being specified as PATH. The trouble was that I was providing a relative path to my AndroidNDK:
$ ./build-android.sh --with-libraries=chrono,program_options,system,thread ../android-ndk-r8e
Everything was instantly resolved by providing an absolute path:
$ ./build-android.sh --with-libraries=chrono,program_options,system,thread ~/boost/android-ndk-r8e
Perhaps you can add this as a remark in the Readme.md? I believe this is also the cause of issue #21 and #27.
from boost-for-android.
I'm no bash guru, but I believe that this may be resolved by adding the following to build-android.sh at line 163:
AndroidNDKRoot=`realpath $AndroidNDKRoot`
echo "Using AndroidNDKRoot = $AndroidNDKRoot"
(This follows the if statement for checking that an NDK path is specified.)
Unfortunately, realpath(3)
isn't included on Debian systems by default, so it adds an additional dependency. Perhaps there's a better solution, for instance by making use of pwd
?
from boost-for-android.
Happy to hear you've found the solution. I think I would prefer to use the pwd command to fix it as described in the link you posted. Would you like to make the fix? Me or someone else will then merge it. If not, I'll do it sometime after Christmas.
from boost-for-android.
I can take a look, but I'm not extremely familiar with bash or posix. If I
come up with anything, I'll let you know!
from boost-for-android.
Paul, in this commit I'm converting AndroidNDKRoot to absolute path. Could you pleas give it a go?
from boost-for-android.
Yes, that commit resolves the problem. Thanks!
from boost-for-android.
Related Issues (20)
- Please update the download link
- Could not find a suitable toolset. HOT 1
- Bump boost version to 1.77 and disable statx syscall HOT 1
- Error before patch, on windows, how to fix? HOT 1
- when Suppport 1.7.7?
- Fixed ndk[19,20,21,22] building failed bug.
- Can you update the shell of 1.77.0 version ,thanks
- Error: No best alternative for libs/context/build/asm_sources HOT 1
- i build boost success but i build project faild HOT 5
- build-boost-without-version-number-suffixes
- Boost 1.74.0 armv7a
- boost_version for 1.72.0
- windows does not compile HOT 3
- "Undefined or not supported Android NDK version: 23.2" on GitHub Actions HOT 2
- fail to identify Windows when using '--with-conv'
- Can't build NDK
- Open source license HOT 2
- How to generate shared libboost_xxxx.so without the version number such as .so.1.74.0 HOT 2
- Please stop requiring approvals for pull requests HOT 3
- Add NDK 26.1 and 26.2 to build-android.sh
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from boost-for-android.