ios - मैं आईओएस उपकरणों के लिए libgfortran(हाथ, armv7) का निर्माण करने के लिए जीसीसी को कैसे संकलित कर सकता हूं?



gcc llvm (1)

मुझे आईओएस पर सुलभ होने के लिए फोरट्रान -77 उप-रूटिनों को संकलित करने की आवश्यकता है I मैं ड्रैगनएग प्लगइन के साथ जीसीसी का उपयोग कर रहा हूं, इसलिए मैं एलएलवीएम बैकएंड के साथ गफ्फारन का उपयोग कर सकता हूं। मैंने इस उत्तर का पालन ​​किया, लेकिन जब मैं armv7, armv7s और arm64 के लिए libgfortran बनाने की बात आती है तो मैं फंस जाता हूं।

  • क्या मैं अकेला libgfortran बना सकता हूँ या यह हमेशा जीसीसी सुइट पूरी तरह से संकलित करने के लिए आवश्यक है?
  • एक अलग लक्ष्य के लिए इस पुस्तकालय का निर्माण करने का सही तरीका क्या है? क्या इस चरण के लिए जीसीसी का उपयोग करना संभव है या क्या मुझे आर्म * -targets के लिए एलएलवीएम की आवश्यकता है?

GCC का उपयोग करते हुए हाथ-लक्ष्य के साथ जीसीसी बिल्डिंग मैं इन त्रुटियों को प्राप्त करता हूं:

./configure --prefix=/tmp/out --host=arm-apple-darwin --enable-languages=fortran
make

make[2]: arm-apple-darwin-ar: No such file or directory
make[2]: *** [libiberty.a] Error 1
make[1]: *** [all-libiberty] Error 2

एलएलवीएम का उपयोग करते हुए हाथ-लक्ष्य के साथ जीसीसी बिल्डिंग में मुझे कॉन्फ़िगर करने में समस्या है:

export CC="$(xcrun -sdk iphoneos -find clang)"
export CPP="$CC -E"
export CFLAGS="-arch armv7 -arch armv7s -arch arm64 -isysroot $(xcrun --sdk iphoneos --show-sdk-path) -miphoneos-version-min=9.2"
export AR=$(xcrun -sdk iphoneos -find ar)
export RANLIB=$(xcrun -sdk iphoneos -find ranlib)
export CPPFLAGS="-arch armv7 -arch armv7s -arch arm64 -isysroot $(xcrun --sdk iphoneos --show-sdk-path) -miphoneos-version-min=9.2"
export LDFLAGS="-arch armv7 -arch armv7s -arch arm64 -isysroot $(xcrun --sdk iphoneos --show-sdk-path)"

./configure --prefix=/tmp/out --enable-languages=fortran --host=arm-apple-darwin --disable-shared

checking how to run the C preprocessor... /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -E
configure: error: in `/Users/timo/temp/gcc-4.8.5-build/fixincludes':
configure: error: C preprocessor "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -E" fails sanity check
See `config.log' for more details.
make[1]: *** [configure-fixincludes] Error 1

कॉन्फ़िगर स्क्रिप्ट बताता है कि

configure: WARNING: If you wanted to set the --build type, don't use --host.
If a cross compiler is detected then cross compile mode will be used.
  • अगर एक क्रॉस कंपाइलर का पता चला है तो इसका क्या मतलब है? मैं सही ढंग से लक्ष्य मंच कैसे परिभाषित करूं?
  • एलएलवीएम - लक्ष्य परिभाषा के रूप में आरएपी armv7 आदि का उपयोग करता है। जीसीसी का उपयोग करते समय क्या बिगड़ती है?

आप क्रॉस बिनुतिल्स के बिना क्रॉस-जीसीसी लाइब्रेरी बनाने की कोशिश कर रहे हैं हाथ के लिए क्रॉस-जीसीसी बनाने के लिए यहां एक अच्छा मैनुअल है, आप इसे का पालन कर सकते हैं।

अगर एक क्रॉस कंपाइलर का पता चला है तो इसका क्या मतलब है? मैं सही ढंग से लक्ष्य मंच कैसे परिभाषित करूं?

विन्यस्त करते समय आपको --target=arm-apple-darwin भी सेट करना चाहिए (मेरे अपने अनुभव में मैंने सेट नहीं किया - बिल्कुल भी)

make[2]: arm-apple-darwin-ar: No such file or directory

बिल्ड क्रॉस-कंपाइलर लक्ष्य पुस्तकालयों को बनाने से पहले आपको इस लक्ष्य के लिए binutils का निर्माण करना चाहिए।

Llvm के बारे में कुछ नहीं कह सकते

तो बस ऊपर दिए गए लिंक में सभी कदम बनाने की कोशिश करें