编译 – 几个lib的iOS编译(armv7,i386).配置脚本:C预处理器失败健全检查

前端之家收集整理的这篇文章主要介绍了编译 – 几个lib的iOS编译(armv7,i386).配置脚本:C预处理器失败健全检查前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在为iOS编写不同的图书馆,直到iOS5没有问题.好的,显然我的问题是,iOS5 SDK不再包含GNU gcc编译器了.只有llvm和clang可用.

我的问题是,我无法完成任何库的“配置”脚本.它总是失败与:

  1. configure: error: C preprocessor
  2. "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc" fails sanity check

gcc只是一个到llvm编译器的符号链接.如果我把它设置为clang,它会产生相同的错误. (只是一个更好的语法错误表示)

这里config.log的重要部分:

  1. configure:3338: checking how to recognise dependent libraries
  2. configure:3514: result: pass_all
  3. configure:3993: checking how to run the C preprocessor
  4. configure:4111: result: /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc
  5. 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
  6. conftest.c:14: error: expected '=',',';','asm' or '__attribute__' before 'error'
  7. configure:4141: $? = 1
  8. configure: Failed program was:
  9. | /* confdefs.h. */
  10. |
  11. | #define PACKAGE_NAME "expat"
  12. | #define PACKAGE_TARNAME "expat"
  13. | #define PACKAGE_VERSION "2.0.1"
  14. | #define PACKAGE_STRING "expat 2.0.1"
  15. | #define PACKAGE_BUGREPORT "expat-bugs@libexpat.org"
  16. | /* end confdefs.h. */
  17. | #ifdef __STDC__
  18. | # include <limits.h>
  19. | #else
  20. | # include <assert.h>
  21. | #endif
  22. | Syntax error
  23. 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
  24. conftest.c:14: error: expected '=','asm' or '__attribute__' before 'error'
  25. configure:4141: $? = 1
  26. configure: Failed program was:
  27. | /* confdefs.h. */
  28. |
  29. | #define PACKAGE_NAME "expat"
  30. | #define PACKAGE_TARNAME "expat"
  31. | #define PACKAGE_VERSION "2.0.1"
  32. | #define PACKAGE_STRING "expat 2.0.1"
  33. | #define PACKAGE_BUGREPORT "expat-bugs@libexpat.org"
  34. | /* end confdefs.h. */
  35. | #ifdef __STDC__
  36. | # include <limits.h>
  37. | #else
  38. | # include <assert.h>
  39. | #endif
  40. | Syntax error
  41. configure:4210: error: C preprocessor "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc" fails sanity check
  42. See `config.log' for more details.

这是我的环境.有点过分,但它可以正常工作iOS4.X.

  1. # Defines
  2. DEVROOT=/Developer/Platforms/iPhoneOS.platform/Developer
  3. SDKROOT=$DEVROOT/SDKs/iPhoneOS5.0.sdk
  4.  
  5. # BUILD STUFF
  6. 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"
  7. export CPPFLAGS="$CXXFLAGS"
  8. export CFLAGS="$CXXFLAGS"
  9. export CPP=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc
  10. export CXXCPP=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++
  11. #export CXX=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++
  12. export CC=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc
  13. export LD=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/ld
  14. export RANLIB=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/ranlib
  15. export AR=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/ar
  16. export STRIP=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/strip
  17. export LIBTOOL=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/libtool
  18. export INSTALL_DIR=/Users/mriedel/MPI/CrossCompiling/armv7_dev_install
  19. export CPATH=$INSTALL_DIR/include
  20. export LIBRARY_PATH=$INSTALL_DIR/lib

我一直在努力想出这个数周,但没有运气.我觉得其他人一定会遇到这个问题.但谷歌没有提出什么.有一段时间,我试图使用gaspreprocessor.pl,但也没有任何运气.

啊,我的配置调用总是类似于:

  1. ./configure --prefix=$INSTALL_DIR --disable-shared --enable-static --host=arm-apple-darwin

我想指出,这个确切的问题发生在我使用配置写字板的所有库.举几个例子:apr,apr-util,expat,log4cxx等…我甚至不知道所需的输出应该是什么.代码中间只有一个奇怪的“语法错误”.难怪它不编译:).

帮助和提示如何进行将不胜感激.
谢谢.

解决方法

我遇到同样的问题.经过一些戳,我的问题原来是我明确地设置CPP.不要设置(实际上,如果设置了’unset’).如果没有设置,配置会默认尝试$CC -E.如果设置,configure不会自动添加-E.此外,将CPPFLAGS设置为-E不起作用,因为这些标志也被传递到其他步骤.

猜你在找的iOS相关文章