আমি কীভাবে আমার উবুন্টু 12.04 আই 386 হোস্টে উবুন্টু 12.04 আর্মহ্যাফ আর্কিটেকচারের জন্য আমার অ্যাপ্লিকেশনটি ক্রস-কম্পাইল করব?


16

আমার লেখা একটি বড় অ্যাপ্লিকেশন রয়েছে। আমি নিম্নলিখিত পরিস্থিতিতে সফলভাবে অ্যাপ্লিকেশনটি সংকলন করতে পারি:

  • উবুন্টু 12.04 চলমান i386 হোস্টের জন্য একটি স্থানীয় সংকলনে
  • স্থানীয়ভাবে উবুন্টু 12.04 চলমান একটি পান্ডবোর্ডে (এটি দীর্ঘ সময় নেয়)
  • আর্মফিফ পান্ডবোর্ড টার্গেটের জন্য হোস্ট পিসিতে কিউমু এবং একটি ক্রুট ব্যবহার করে (এটি খুব দীর্ঘ সময় নেয়)

সময় মতো ফ্যাশনে বিল্ডগুলি সম্পূর্ণ করার জন্য আমি পান্ডো বোর্ডের মতো একটি লক্ষ্যে চালানোর জন্য i386 হোস্টে অ্যাপ্লিকেশনটি ক্রস-সংকলন করতে চাই। এখনও পর্যন্ত সংগ্রহস্থলগুলিতে আর্ম-লিনাক্স-জেনুয়াবিহফ সরঞ্জাম চেইন ব্যবহারের প্রচেষ্টা করা বাইনারিগুলি তৈরি করেছে যা সঠিকভাবে চালিত হয় না। এই পর্যায়ে, আমার সফ্টওয়্যারটি প্যাকেজ করার কোনও পরিকল্পনা নেই।

সফল ক্রস সংকলন অর্জনের প্রস্তাবিত উপায় কী?


ক্রস-সংকলক সরঞ্জামচইনের সাথে ক্রস সংকলনের কাজ করা উচিত, এটাই তার জন্য। কোন উপায়ে বাইনারি সঠিকভাবে চলমান না?
গিলস 'অসন্তুষ্ট হওয়া বন্ধ করুন'

আমার বাইনারিগুলি প্রায় অবিলম্বে সমাপ্ত হয়। স্ট্রেস ইঙ্গিত দেয় যে libc.so.6 এটি যেখানে প্রত্যাশিত তা নয়।
জোনাথন গুহ

এটি একটি লিঙ্ক বিকল্পের মাধ্যমে স্থিরযোগ্য হওয়া উচিত (কোনটি অফহ্যান্ড জানি না)। লক্ষ্য ব্যবস্থা কি উবুন্টু চলছে?
গিলস 'দুষ্ট হওয়া বন্ধ করুন'

হ্যাঁ লক্ষ্যটিও উবুন্টু 12.04 চলছে। আমি ভেবেছিলাম যে সম্ভবত আমাকে সংকলক এবং লিঙ্কারের --sysroot বিকল্পটি ব্যবহার করার দরকার ছিল তবে এটি উবুন্টু সরঞ্জামচেইনে অক্ষম।
জোনাথন গুহা

টুলচেনটি কেবল আমার জন্য, 12.04-এ কাজ করে। আমি এটি মাত্র amd64 এ পরীক্ষা করেছি এবং সফলভাবে এটি একটি আর্মএফ সার্ভারে উত্পাদিত বাইনারিটি চালিয়েছে। তবে আমার কাছে কোনও আই 386 বিল্ড মেশিন হ্যান্ডি নেই। আপনার যদি এখনও সমস্যা হয় তবে আপনাকে বিশদভাবে জানাতে হবে। এলডি কী বলে? স্ট্রেস থেকে আপনি কী দেখেছেন যা আপনাকে নিজের সিদ্ধান্তে নিয়ে গেছে? দেখুন যে আপনি কোনও সাধারণ পরীক্ষার ক্ষেত্রে আপনার সমস্যা হ্রাস করতে পারেন যা পরিষ্কারভাবে কাজ করা উচিত এবং আপনি যে পদক্ষেপগুলি বিশদে নিচ্ছেন তা উপস্থাপন করুন।
রবি বাসাক

উত্তর:


6

https://wiki.linaro.org/Platform/DevPlatform/CrossCompile/UsingMultiArch

https://wiki.ubuntu.com/MultiarchCross

উবুন্টু ক্রস-টুলচেইন আছে, apt-get install gcc-arm-linux-gnueabihfকিন্তু পরের- gen টুলচেইন কাজ এখানে আলোচনা হয়: http://gsoc.sitedethib.com/posts/apt-get_install_gcc-4.7-arm-linux-gnueabihf/

এই মুহুর্তে প্রয়োজনীয় অনেকগুলি কাজ রয়েছে। উদাহরণস্বরূপ, আপনি যদি অপ্রত্যক্ষ লিঙ্ক ব্যবহার করেন (লিনোরো উইকি পৃষ্ঠায় আচ্ছাদিত) আপনিও বিদেশী বাইনারিগুলি সংকলনের পরে চালানো এড়ানো উচিত।

এছাড়াও, এটি অটোটুলগুলির সাথে সত্যই সবচেয়ে পরিপক্ক।

আমি আমার প্যাকেজটি মোটামুটি দ্রুত ক্রস-সংকলন করতে পেয়েছি।

apt-get build-dep -aarmhf foo-pkg
apt-get source foo-pkg
cd foo-pkg-*
dpkg-buildpackage -aarmhf

3
এই পদক্ষেপগুলি কী করে এবং স্যুইচ -আর্মহফটি কী তা দয়া করে ব্যাখ্যা করুন। তারা অনেক ব্যবহারকারীর সাথে পরিচিত নয়, তাদের ব্যবহারের যোগ্য উত্তর পেতে আরও আরও গভীর স্তর অনুসন্ধান করা প্রয়োজন। ধন্যবাদ।
গ্যারিপ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.