저는 iOS 용으로 다른 라이브러리를 많이 컴파일 해왔고 iOS5까지는 문제가 없었습니다. 좋아, 분명히 내 문제는, iOS5 SDK는 GNU gcc 컴파일러를 더 이상 포함하지 않는다는 것입니다. llvm 및 clang 만 사용할 수 있습니다.iOS 여러 개의 libs (armv7, i386) 컴파일. 스크립트 구성 : C 전처리 기가 정상 검사에 실패했습니다.
내 문제는 어떤 라이브러리의 'configure'스크립트를 더 이상 실행할 수 없다는 것입니다. 항상 다음과 같이 실패합니다.
configure: error: C preprocessor
"/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc" fails sanity check
gcc는 llvm 컴파일러에 대한 심볼릭 링크입니다. clang으로 설정하면 같은 오류가 발생합니다.
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.
가 여기 내 환경입니다 : 여기
config.log의 중요한 부분 (그냥 더 좋은 구문 오류 표현으로). 조금 과장되었지만 iOS4.X에서 제대로 작동했습니다.
# 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
나는 이것을 몇 주 동안 알아 내려고 노력했지만 행운은 없다. 나는이 문제를 다른 사람들이보아야 만한다고 생각한다. 그러나 구글은 아무것도 가져 오지 않았다. 한동안 gas-preprocessor.pl을 사용하려고했지만 운이 없었습니다.
아, 내 구성 호출은 항상이 유사합니다
./configure --prefix=$INSTALL_DIR --disable-shared --enable-static --host=arm-apple-darwin
내가이 정확한 문제가 scrips에를 구성 사용하는 모든 내 라이브러리로 발생하는 것을 지적하고 싶다. 몇 가지 이름을 지 으려면 : apr, apr-util, expat, log4cxx 등 ... 원하는 출력이 무엇인지 확실하지 않습니다. 코드 중간에 이상하게 배치 된 '구문 오류'가 있습니다. 이상하게도 컴파일되지 않습니다 :).
진행 방법에 대한 도움말과 도움말을 크게 높이세요. 감사합니다. .
오류를 throw하는 gcc 호출에'-E'을 수동으로 추가하면 실제로이 오류를 건너 뛸 수 있습니다. 하지만 다음 단계로 진행됩니다 :). – rado0x54