2013-09-05 2 views
3

나는 안드로이드에 대한 부스트 1.54를 구축하려고합니다. 나는 date_time, 파일 시스템, 정규식, program_options, 신호, 시스템 및 부스트 라이브러리에 대해이 작업을 수행 할 수 있습니다. 하지만이 중 부스트 로그 라이브러리를 추가하면 '8 개의 타겟 업데이트 실패'라는 메시지가 표시되지 않습니다. 부스트 안드로이드 빌딩 부스트 로그

는 내 사용자 config.jam

import os ; 

androidNDKRoot = C:/android-ndk-r8e ; # put the relevant path 
using gcc : android : 
    $(androidNDKRoot)/toolchains/arm-linux-androideabi-4.7/prebuilt/windows/bin/arm-linux-androideabi-g++ : 
    <compileflags>--sysroot=$(androidNDKRoot)/platforms/android-8/arch-arm 
    <compileflags>-mthumb 
    <compileflags>-Os 
    <compileflags>-fno-strict-aliasing 
    <compileflags>-O2 
    <compileflags>-DNDEBUG 
    <compileflags>-g 
    <compileflags>-lstdc++ 
    <compileflags>-I$(androidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.7/include 
    <compileflags>-I$(androidNDKRoot)/sources/cxx-stl/gnu-libstdc++/4.7/libs/armeabi/include 
    <compileflags>-D__GLIBC__ 
    <compileflags>-D_GLIBCXX__PTHREADS 
    <compileflags>-D__arm__ 
    <compileflags>-D_REENTRANT 
    <archiver>$(androidNDKRoot)/toolchains/arm-linux-androideabi-4.7/prebuilt/windows/bin/arm-linux-androideabi-ar 
    <ranlib>$(androidNDKRoot)/toolchains/arm-linux-androideabi-4.7/prebuilt/windows/bin/arm-linux-androideabi-ranlib 
     ; 

에 다음 줄을 추가 나는 또한 스레딩 라이브러리를 컴파일하기 위해 libs와/파일 시스템/SRC/operations.cpp 파일을 변경했습니다. 필요한 변경 사항은 here입니다. 이미 전에 말했듯이

내 빌드 명령은 내가 빌드 명령에 --with-log을 입력하지 않은 경우가 컴파일 않습니다

set CXXFLAGS="-I%ANDROID_NDK%/platforms/android-8/arch-arm/usr/include -I%ANDROID_NDK%/sources/cxx-stl/gnu-libstdc++/4.4.3/include -I%ANDROID_NDK%/sources/cxx-stl/gnu-libstdc++/4.4.3/libs/armeabi/include " 
set TOOLSET=gcc-android 

.\b2 --toolset=%TOOLSET% --user-config=./user-config-android.jam cxxflags=%CXXFLAGS% threadapi=pthread --prefix=..\boost_android_arm --builddir=./ target-os=linux --with-date_time --with-filesystem --with-regex --with-log define=BOOST_FILESYSTEM_VERSION=3 --with-program_options --with-signals --with-system --with-thread link=static runtime-link=shared threading=multi install 

을 다음과 같습니다. 여기

gcc.compile.c++ bin.v2\libs\log\build\gcc-android\release\build-no\link-static\log-api-unix\target-os-linux\threadapi-pthread\threading-multi\attribute_name.o 
In file included from libs\log\src\attribute_name.cpp:32:0: 
./boost/log/detail/light_rw_mutex.hpp:131:5: error: 'pthread_rwlock_t' does not name a type 
./boost/log/detail/light_rw_mutex.hpp: In constructor 'boost::log::v2s_mt_posix::aux::light_rw_mutex::light_rw_mutex()': 
./boost/log/detail/light_rw_mutex.hpp:136:30: error: 'm_Mutex' was not declared in this scope 
./boost/log/detail/light_rw_mutex.hpp:136:43: error: 'pthread_rwlock_init' was not declared in this scope 
./boost/log/detail/light_rw_mutex.hpp: In destructor 'boost::log::v2s_mt_posix::aux::light_rw_mutex::~light_rw_mutex()': 
./boost/log/detail/light_rw_mutex.hpp:140:33: error: 'm_Mutex' was not declared in this scope 
./boost/log/detail/light_rw_mutex.hpp:140:40: error: 'pthread_rwlock_destroy' was not declared in this scope 
./boost/log/detail/light_rw_mutex.hpp: In member function 'void boost::log::v2s_mt_posix::aux::light_rw_mutex::lock_shared()': 
./boost/log/detail/light_rw_mutex.hpp:144:32: error: 'm_Mutex' was not declared in this scope 
./boost/log/detail/light_rw_mutex.hpp:144:39: error: 'pthread_rwlock_rdlock' was not declared in this scope 
./boost/log/detail/light_rw_mutex.hpp: In member function 'void boost::log::v2s_mt_posix::aux::light_rw_mutex::unlock_shared()': 
./boost/log/detail/light_rw_mutex.hpp:148:32: error: 'm_Mutex' was not declared in this scope 
./boost/log/detail/light_rw_mutex.hpp:148:39: error: 'pthread_rwlock_unlock' was not declared in this scope 
./boost/log/detail/light_rw_mutex.hpp: In member function 'void boost::log::v2s_mt_posix::aux::light_rw_mutex::lock()': 
./boost/log/detail/light_rw_mutex.hpp:152:32: error: 'm_Mutex' was not declared in this scope 
./boost/log/detail/light_rw_mutex.hpp:152:39: error: 'pthread_rwlock_wrlock' was not declared in this scope 
./boost/log/detail/light_rw_mutex.hpp: In member function 'void boost::log::v2s_mt_posix::aux::light_rw_mutex::unlock()': 
./boost/log/detail/light_rw_mutex.hpp:156:32: error: 'm_Mutex' was not declared in this scope 
./boost/log/detail/light_rw_mutex.hpp:156:39: error: 'pthread_rwlock_unlock' was not declared in this scope 

그것은이 같은 많은 라인을 포함, 출력에서 ​​라인의 몇 가지 있지만이는 준 첫 번째 오류입니다.

누군가 내가 잘못했거나 무엇을 변경해야 하는지를 볼 수 있습니까?

감사합니다.

+3

이미 알고있는 것처럼이 유형은 API 9 (https://code.google.com/p/android/issues/detail?id)까지 공개되지 않았습니다. = 24228) –

답변

3

플랫폼을 android-9로 변경하면 문제가 해결됩니다. 그 후 이미 수정 된 다른 오류가 발생합니다. here