विफल रहता है IOS के लिए अलग-अलग पुस्तकालयों की क्रॉस-कंपाइलिंग कर रहा हूं और आईओएस 5 तक कोई समस्या नहीं थी। ठीक है, जाहिर है मेरी समस्या यह है कि आईओएस 5 एसडीके में जीएनयू जीसीसी कंपाइलर शामिल नहीं है। केवल llvm और clang उपलब्ध हैं।आईओएस संकलन (armv7, i386)। स्क्रिप्ट कॉन्फ़िगर करें: सी प्रीप्रोसेसर सैनिटी चेक
मेरी समस्या यह है कि मैं किसी भी पुस्तकालय की 'कॉन्फ़िगरेशन' स्क्रिप्ट को चलाने के लिए समाप्त नहीं कर सकता। यह हमेशा विफल रहता है के साथ:
configure: error: C preprocessor
"/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc" fails sanity check
जीसीसी केवल LLVM संकलक के लिए एक प्रतीकात्मक कड़ी है। अगर मैं इसे क्लैंग करने के लिए सेट करता हूं, तो यह वही त्रुटि उत्पन्न करता है। (बस एक अच्छे सिंटेक्स त्रुटि प्रतिनिधित्व के साथ)
यहाँ config.log का महत्वपूर्ण हिस्सा:
configure:3338: checking how to recognise dependent libraries
configure:3514: result: pass_all
configure:3993: checking how to run the C preprocessor
configure:4111: result: /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc
configure:4135: /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc -B/Developer/Platforms/iPhoneOS.platform/Developer/usr -arch armv7 -miphoneos-version-min=5.0 -gdwarf-2 -mthumb -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk -L/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/usr/lib/system conftest.c
conftest.c:14: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'error'
configure:4141: $? = 1
configure: failed program was:
| /* confdefs.h. */
|
| #define PACKAGE_NAME "expat"
| #define PACKAGE_TARNAME "expat"
| #define PACKAGE_VERSION "2.0.1"
| #define PACKAGE_STRING "expat 2.0.1"
| #define PACKAGE_BUGREPORT "[email protected]"
| /* end confdefs.h. */
| #ifdef __STDC__
| # include <limits.h>
| #else
| # include <assert.h>
| #endif
| Syntax error
configure:4135: /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc -B/Developer/Platforms/iPhoneOS.platform/Developer/usr -arch armv7 -miphoneos-version-min=5.0 -gdwarf-2 -mthumb -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk -L/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/usr/lib/system conftest.c
conftest.c:14: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'error'
configure:4141: $? = 1
configure: failed program was:
| /* confdefs.h. */
|
| #define PACKAGE_NAME "expat"
| #define PACKAGE_TARNAME "expat"
| #define PACKAGE_VERSION "2.0.1"
| #define PACKAGE_STRING "expat 2.0.1"
| #define PACKAGE_BUGREPORT "[email protected]"
| /* end confdefs.h. */
| #ifdef __STDC__
| # include <limits.h>
| #else
| # include <assert.h>
| #endif
| Syntax error
configure:4210: error: C preprocessor "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc" fails sanity check
See `config.log' for more details.
यहाँ मेरी वातावरण है। थोड़ा ओवरकिल, लेकिन यह आईओएस 4.एक्स के साथ ठीक काम किया।
# Defines
DEVROOT=/Developer/Platforms/iPhoneOS.platform/Developer
SDKROOT=$DEVROOT/SDKs/iPhoneOS5.0.sdk
# BUILD STUFF
export CXXFLAGS="-B/Developer/Platforms/iPhoneOS.platform/Developer/usr -arch armv7 -miphoneos-version-min=5.0 -gdwarf-2 -mthumb -isysroot $SDKROOT -L$SDKROOT/usr/lib/system"
export CPPFLAGS="$CXXFLAGS"
export CFLAGS="$CXXFLAGS"
export CPP=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc
export CXXCPP=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++
#export CXX=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++
export CC=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc
export LD=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/ld
export RANLIB=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/ranlib
export AR=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/ar
export STRIP=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/strip
export LIBTOOL=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/libtool
export INSTALL_DIR=/Users/mriedel/MPI/CrossCompiling/armv7_dev_install
export CPATH=$INSTALL_DIR/include
export LIBRARY_PATH=$INSTALL_DIR/lib
मैं इसे सप्ताहों के लिए समझने की कोशिश कर रहा हूं, लेकिन कोई भाग्य नहीं है। मुझे लगता है कि अन्य लोगों को इस समस्या में आना चाहिए था। लेकिन Google ने कुछ भी नहीं लाया। एक समय के लिए, मैंने gas-preprocessor.pl का उपयोग करने की कोशिश की, लेकिन बिना किसी किस्मत के।
आह, मेरी कॉन्फ़िगर कॉल हमेशा इस के समान हैं:
./configure --prefix=$INSTALL_DIR --disable-shared --enable-static --host=arm-apple-darwin
मैं कहना है कि यह सही समस्या मेरी सभी पुस्तकालयों कि शेयरों कॉन्फ़िगर का उपयोग के साथ होता है चाहता हूँ। कुछ नाम करने के लिए: apr, apr-util, expat, log4cxx आदि ... मुझे यह भी सुनिश्चित नहीं है कि वांछित आउटपुट क्या होना चाहिए। कोड के बीच में केवल एक अजीब तरह से 'सिंटेक्स त्रुटि' है। कोई आश्चर्य नहीं कि यह संकलित नहीं है :)।
आगे बढ़ने के तरीके और सहायता की सराहना की जाएगी। धन्यवाद।
ठीक है अगर मैं जोड़ने के '-E' मैन्युअल जीसीसी कॉल कि त्रुटि मैं वास्तव में इस त्रुटि अतीत को छोड़ करने में सक्षम हूँ फेंकता है। लेकिन फिर यह अगले में चला जाता है :)। – rado0x54