2012-11-04 18 views
10

के अलावा प्लेटफार्मों के लिए कोड संकलित नहीं कर रहा है, मैं उबंटू 12.04 x86 64 बिट के तहत हूं, मैंने आधिकारिक svn भंडार से सफलतापूर्वक llvm/clang का 32 बिट संस्करण संकलित किया है।क्लैंग x86

मैं अब मैं इस बिंदु पर armv5 बनाम armv7a की तरह मंच संस्करणों के बारे में परवाह नहीं है, ++ सी संकलित करने के लिए एआरएम के लिए कोड कोशिश कर रहा हूँ, मैं कैसे मंच स्विच clang लिए काम करता है पर ध्यान केंद्रित कर रहा हूँ:

llvm-config --targets-built 
ARM CellSPU CppBackend Hexagon Mips MBlaze MSP430 NVPTX PowerPC Sparc X86 XCore 

लेकिन निम्न आदेश काम नहीं करता है

clang++ -arch arm soft.cpp -o soft_ARM 

उत्पादन होता है

clang-3: warning: argument unused during compilation: '-arch arm' 

मैंने जीसीसी-जैसे वेरिएंट या -arch=arm, -arch=armv7a, -march=armv5 जैसे अन्य संयोजनों की भी कोशिश की है लेकिन कुछ भी काम नहीं करता है।

कुछ दस्तावेज़ पढ़ने के बाद मैंने देखा कि क्लैंग केवल एमएसी ओएस एक्स/डार्विन के तहत एआरएम के लिए काम करता है और इसे अन्य ओएस के तहत एआरएम के लिए काम नहीं करना चाहिए।

मैं एआरएम के लिए क्लैंग के साथ कैसे संकलित कर सकता हूं और llvm-config --targets-built का आउटपुट वास्तव में क्या है?

+0

मैंने अभी क्लैंग के 64 बिट संस्करण को संकलित किया है और व्यवहार हमेशा पहले जैसा ही है। – user1797612

उत्तर

8

-र्च डार्विन-केवल सुविधा है। आपको गैर-डार्विन प्लेटफॉर्म पर लक्ष्य का उपयोग करना चाहिए। वैकल्पिक रूप से, लक्ष्य ट्रिपलेट निर्दिष्ट करने या क्लैंग से -क्लेंग से एक लिंक बनाने के लिए llvm/लक्ष्य संकलित करें। आपके मामले में लक्ष्य ट्रिपलेट होगा-कोई भी-लिनक्स-gnueabi

+0

काम नहीं कर रहा है, 'clang-3: चेतावनी: संकलन के दौरान तर्क का उपयोग नहीं किया गया:' -target = arm-none-linux-gnueabi ' – user1797612

+0

ओह, क्षमा करें, यह होना चाहिए-लक्ष्य लक्ष्य-कोई-लिनक्स-gnueabi –

+0

1 मिनी चरण आगे बढ़ता है लेकिन यह काम नहीं करता है '/ usr/bin/as: unrecognized option' -mfloat-abi = softfp ' clang-3: त्रुटि: एंबलर कमांड निकास कोड 1 के साथ विफल रहा (उपयोग -v आमंत्रण देखने के लिए)' – user1797612