2009-10-22 19 views
8

यह iPhone के लिए पार संकलन पर पिछले एक प्रश्न के फॉलोअप है:
Cross-compile Autotools-based Libraries for Official iPhone SDKiPhone करने के लिए क्रॉस-संकलन अपाचे पोर्टेबल रनटाइम

असल में, मैं अपाचे पोर्टेबल रनटाइम संकलित करने के लिए कोशिश कर रहा हूँ (APR) आईफोन के लिए संस्करण 1.3.8 (नवीनतम)। मैं वर्तमान में विन्यास चरण के दौरान निम्न त्रुटि में चल रहा हूँ:

 
checking for working PROCESS_SHARED locks... configure: error: in `/Users/michaelsafyan/Downloads/apr-1.3.8': 
configure: error: cannot run test program while cross compiling 
See `config.log' for more details. 

मैं के माध्यम से "iphone3.1 कॉन्फ़िगर --disable-DSO --enable-सूत्र" "कॉन्फ़िगर" स्क्रिप्ट लागू कर रहा हूँ, जहाँ "iphone3 .1 कॉन्फ़िगर कॉन्फ़िगर "स्क्रिप्ट" निम्न स्क्रिप्ट है कि मैं पकाया-अप किया है को लागू करने की है ":

 
#! /bin/bash 

# 
# Program : iphone3.1-configure 
# Authors : Michael Aaron Safyan ([email protected]) 
# Synopsis : 
#   This program runs the "configure" script generated by the 
#   GNU Autotools in order to cross-compile thirdparty libraries 
#   for the iPhone 3.1 SDK. Run this script while in a directory 
#   containing an autotools "configure" script. Once you run this, 
#   you can use "make" and "sudo make install" to build the library. 
#   An install prefix of "/opt/iphone-3.1/" is used. 
# 

unset CPATH 
unset C_INCLUDE_PATH 
unset CPLUS_INCLUDE_PATH 
unset OBJC_INCLUDE_PATH 
unset LIBS 
unset DYLD_FALLBACK_LIBRARY_PATH 
unset DYLD_FALLBACK_FRAMEWORK_PATH 

export BUILD_DARWIN_VER=`uname -r` 
export SDKVER="3.1" 
export DEVROOT="/Developer/Platforms/iPhoneOS.platform/Developer" 
export SDKROOT="$DEVROOT/SDKs/iPhoneOS$SDKVER.sdk" 
export PKG_CONFIG_PATH=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS$SDKVER.sdk/usr/lib/pkgconfig:/Developer/Platforms/iPhoneOS.platform/Developer/usr/lib/pkgconfig:/opt/iphone-$SDKVER/lib/pkgconfig:/usr/local/iphone-$SDKVER/lib/pkgconfig 
export PREFIX="/opt/iphone-$SDKVER" 
export AS="$DEVROOT/usr/bin/as" 
export ASCPP="$DEVROOT/usr/bin/as" 
export AR="$DEVROOT/usr/bin/ar" 
export RANLIB="$DEVROOT/usr/bin/ranlib" 
export CPPFLAGS="-pipe -no-cpp-precomp -I$SDKROOT/usr/lib/gcc/arm-apple-darwin9/4.2.1/include/ -I$SDKROOT/usr/include -I$DEVROOT/usr/include -I/opt/iphone-$SDKVER/include -I/usr/local/iphone-$SDKVER/include" 
export CFLAGS="-std=c99 -arch armv6 -pipe -no-cpp-precomp --sysroot='$SDKROOT' -isystem $SDKROOT/usr/lib/gcc/arm-apple-darwin9/4.2.1/include/ -isystem $SDKROOT/usr/include -isystem $DEVROOT/usr/include -isystem /opt/iphone-$SDKVER/include -isystem /usr/local/iphone-$SDKVER/include" 
export CXXFLAGS="-std=c99 -arch armv6 -pipe -no-cpp-precomp --sysroot='$SDKROOT' -isystem $SDKROOT/usr/lib/gcc/arm-apple-darwin9/4.2.1/include/ -isystem $SDKROOT/usr/include -isystem $DEVROOT/usr/include -isystem /opt/iphone-$SDKVER/include -isystem /usr/local/iphone-$SDKVER/include" 
export LDFLAGS="-arch armv6 --sysroot='$SDKROOT' -L$SDKROOT/usr/lib -L$DEVROOT/usr/lib -L/opt/iphone-$SDKVER/lib -L/usr/local/iphone-$SDKVER/lib" 
export CPP="$DEVROOT/usr/bin/cpp" 
export CXXCPP="$DEVROOT/usr/bin/cpp" 
export CC="$DEVROOT/usr/bin/gcc-4.2" 
export CXX="$DEVROOT/usr/bin/g++-4.2" 
export LD="$DEVROOT/usr/bin/ld" 
export STRIP="$DEVROOT/usr/bin/strip" 

if [ ! \(-d "$DEVROOT" \) ] ; then 
    echo "The iPhone SDK could not be found. Folder \"$DEVROOT\" does not exist." 
    exit 1 
fi 

if [ ! \(-d "$SDKROOT" \) ] ; then 
    echo "The iPhone SDK could not be found. Folder \"$SDKROOT\" does not exist." 
    exit 1 
fi 

./configure --prefix="$PREFIX" --build="i386-apple-darwin$BUILD_DARWIN_VER" --host="arm-apple-darwin9" --enable-static --disable-shared ac_cv_file__dev_zero=no ac_cv_func_setpgrp_void=yes [email protected] 

त्रुटि विन्यस्त है कि मुझे दे रहा है पहली बार मैं के साथ एक संदेश प्राप्त हुआ है नहीं है "क्रॉस संकलन करते समय परीक्षण कार्यक्रम नहीं चला सकते"। वास्तव में, "iphone3.1-config" स्क्रिप्ट में "ac_cv_file__dev_zero = no" और "ac_cv_func_setpgrp_void = yes" तत्वों के कारण दो समान विफल परीक्षणों को बाईपास किया जा सकता है। मेरी समस्या यह है कि मुझे नहीं पता कि इस चेक को कैसे बाईपास करना है - यानी, मुझे नहीं पता कि इस टेस्ट को बाईपास करने के लिए कौन सी चर सेट करने के लिए सेट किया गया है और लक्ष्य के लिए बनाए गए निष्पादन योग्य चलाने के लिए कोई भी अतिरिक्त परीक्षण मंच। मैं पहले दो समान परीक्षणों को आसानी से बाईपास करने में सक्षम था क्योंकि मैं Google पर कामकाज का पता लगाने में सक्षम था ... क्या किसी को पता है कि इस चर को बाईपास करने के लिए कौन से चर सेट किए गए हैं या कोई अन्य तरीका है?

यदि कोई भी उन सभी परीक्षणों को दबाने का तरीका जानता है जिन्हें क्रॉस-कंपाइलिंग के दौरान निष्पादित नहीं किया जा सकता है, या यदि आप जानते हैं कि इस विशिष्ट जांच को कैसे दबाया जाए, तो मैं बहुत सराहना करता हूं। आपका बहुत बहुत धन्यवाद।

उत्तर

9

निम्न चर तय करने की आवश्यकता:

  • ac_cv_file__dev_zero = "हाँ"
  • ac_cv_func_setpgrp_void = "हाँ"
  • apr_cv_process_shared_works = "हाँ"
  • apr_cv_mutex_robust_shared = "नहीं"
  • apr_cv_tcp_nodelay_with_cork = "yes"
  • ac_cv_sizeof_struct_iovec = "8"
  • apr_cv_mutex_recursive = "हाँ"

उपयोग निम्न अद्यतन "iphone3.1 कॉन्फ़िगर" कार्यक्रम कॉन्फ़िगर करने के लिए स्क्रिप्ट:

 
#! /bin/bash 

# 
# Program : iphone3.1-configure 
# Authors : Michael Aaron Safyan ([email protected]) 
# Synopsis : 
#   This program runs the "configure" script generated by the 
#   GNU Autotools in order to cross-compile thirdparty libraries 
#   for the iPhone 3.1 SDK. Run this script while in a directory 
#   containing an autotools "configure" script. Once you run this, 
#   you can use "make" and "sudo make install" to build the library. 
#   An install prefix of "/opt/iphone-3.1/" is used. 
# 

unset CPATH 
unset C_INCLUDE_PATH 
unset CPLUS_INCLUDE_PATH 
unset OBJC_INCLUDE_PATH 
unset LIBS 
unset DYLD_FALLBACK_LIBRARY_PATH 
unset DYLD_FALLBACK_FRAMEWORK_PATH 

export BUILD_DARWIN_VER=`uname -r` 
export SDKVER="3.1" 
export DEVROOT="/Developer/Platforms/iPhoneOS.platform/Developer" 
export SDKROOT="$DEVROOT/SDKs/iPhoneOS$SDKVER.sdk" 
export PKG_CONFIG_PATH=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS$SDKVER.sdk/usr/lib/pkgconfig:/Developer/Platforms/iPhoneOS.platform/Developer/usr/lib/pkgconfig:/opt/iphone-$SDKVER/lib/pkgconfig:/usr/local/iphone-$SDKVER/lib/pkgconfig 
export PREFIX="/opt/iphone-$SDKVER" 
export AS="$DEVROOT/usr/bin/as" 
export ASCPP="$DEVROOT/usr/bin/as" 
export AR="$DEVROOT/usr/bin/ar" 
export RANLIB="$DEVROOT/usr/bin/ranlib" 
export CPPFLAGS="-pipe -no-cpp-precomp -I$SDKROOT/usr/lib/gcc/arm-apple-darwin9/4.2.1/include/ -I$SDKROOT/usr/include -I$DEVROOT/usr/include -I/opt/iphone-$SDKVER/include -I/usr/local/iphone-$SDKVER/include" 
export CFLAGS="-std=c99 -arch armv6 -pipe -no-cpp-precomp --sysroot='$SDKROOT' -isystem $SDKROOT/usr/lib/gcc/arm-apple-darwin9/4.2.1/include/ -isystem $SDKROOT/usr/include -isystem $DEVROOT/usr/include -isystem /opt/iphone-$SDKVER/include -isystem /usr/local/iphone-$SDKVER/include" 
export CXXFLAGS="-std=c99 -arch armv6 -pipe -no-cpp-precomp --sysroot='$SDKROOT' -isystem $SDKROOT/usr/lib/gcc/arm-apple-darwin9/4.2.1/include/ -isystem $SDKROOT/usr/include -isystem $DEVROOT/usr/include -isystem /opt/iphone-$SDKVER/include -isystem /usr/local/iphone-$SDKVER/include" 
export LDFLAGS="-arch armv6 --sysroot='$SDKROOT' -L$SDKROOT/usr/lib -L$DEVROOT/usr/lib -L/opt/iphone-$SDKVER/lib -L/usr/local/iphone-$SDKVER/lib" 
export CPP="$DEVROOT/usr/bin/cpp" 
export CXXCPP="$DEVROOT/usr/bin/cpp" 
export CC="$DEVROOT/usr/bin/gcc-4.2" 
export CXX="$DEVROOT/usr/bin/g++-4.2" 
export LD="$DEVROOT/usr/bin/ld" 
export STRIP="$DEVROOT/usr/bin/strip" 

if [ ! \(-d "$DEVROOT" \) ] ; then 
    echo "The iPhone SDK could not be found. Folder \"$DEVROOT\" does not exist." 
    exit 1 
fi 

if [ ! \(-d "$SDKROOT" \) ] ; then 
    echo "The iPhone SDK could not be found. Folder \"$SDKROOT\" does not exist." 
    exit 1 
fi 

./configure \ 
    --prefix="$PREFIX" \ 
    --build="i386-apple-darwin$BUILD_DARWIN_VER" \ 
    --host="arm-apple-darwin9" \ 
    --enable-static \ 
    --disable-shared \ 
    ac_cv_file__dev_zero="yes" \ 
    ac_cv_func_setpgrp_void="yes" \ 
    apr_cv_process_shared_works="yes" \ 
    apr_cv_mutex_robust_shared="no" \ 
    apr_cv_tcp_nodelay_with_cork="yes" \ 
    ac_cv_sizeof_struct_iovec="8" \ 
    apr_cv_mutex_recursive="yes" [email protected] 

उपयोग "iphone3.1-कॉन्फ़िगर --disable-DSO - -नेबल-थ्रेड्स & & ", फिर" सुडो इंस्टॉल करें "।

+0

हाय, 'आईफोन के लिए अपाचे पोर्टेबल रनटाइम को क्रॉस-कंपाइलिंग' का लिंक। टूट गया है। – Seunghoon

+0

हाँ, मैंने इसे हटा दिया है। –

+0

इस उत्तर को जोड़ने के लिए धन्यवाद। क्यूएनएक्स मंच के लिए क्रॉस-बिल्डिंग एपीआर के दौरान इसने मेरे जीवन को बहुत आसान बना दिया। ऐसा लगता है कि पांच साल बाद भी एक ही कॉन्फ़िगरेशन पैरामीटर की आवश्यकता है। – MayaPosch

संबंधित मुद्दे