Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Apakah kegunaan kompilasi silang linux?

Apakah kegunaan kompilasi silang linux?

WBOY
WBOYasal
2022-08-17 17:31:502722semak imbas

Dalam Linux, kompilasi silang ialah atur cara kompilasi yang dijalankan dalam persekitaran komputer, yang boleh menyusun kod yang dijalankan dalam persekitaran yang lain boleh dijalankan dalam pelbagai persekitaran sasaran , jadi sukar untuk melaksanakan kompilasi tempatan langsung Kadangkala ia adalah kerana platform sasaran tidak membenarkan atau tidak dapat memasang pengkompil yang kami perlukan, dan kami memerlukan ciri tertentu pengkompil ini, jadi kami perlu menggunakan Kompil silang.

Apakah kegunaan kompilasi silang linux?

Persekitaran pengendalian tutorial ini: sistem linux7.3, komputer Dell G3.

Apakah kegunaan kompilasi silang linux

Apakah itu kompilasi silang

Kompilasi tempatan

Sebelum menerangkan apa itu kompilasi silang, kita mesti terlebih dahulu memahami konsep: kompilasi tempatan

Pembangunan perisian biasa kami sebelum ini ialah semua kompilasi tempatan: di bawah PC semasa dan CPU x86, secara langsung The compiled program ialah program (atau fail perpustakaan) yang boleh dijalankan, yang boleh dijalankan secara langsung dalam persekitaran semasa, iaitu, di bawah CPU x86, dalam komputer semasa.

Kompilasi pada masa ini boleh dipanggil: kompilasi tempatan, iaitu program yang disusun boleh dijalankan di bawah platform sasaran semasa hanya dengan meletakkannya pada platform semasa.

Kompilasi silang

Kompilasi silang ialah konsep yang sepadan dengan kompilasi tempatan.

Apa yang dipanggil kompilasi silang bermaksud: apabila disusun pada satu platform, program yang disusun ialah persekitaran tersusun yang dijalankan pada platform lain Ia berbeza daripada persekitaran berjalan dan disusun silang , ini dipanggil salib.

Kompilasi silang, konsep ini, adalah berkaitan terutamanya dengan pembangunan terbenam.

Contohnya.: Susun pada platform x86 dan jalankan pada platform ARM.

Salah satu contoh yang paling biasa ialah:

Apabila anda melakukan pembangunan terbenam, anda mempunyai papan pembangunan terbenam CPU dan anda membangunkannya pada platform x86, seperti Ubuntu . Untuk Linux, atau Win 10, anda perlu:

Pada platform x86, (gunakan pengkompil silang) untuk menyusun kod program yang anda tulis

Kod yang disusun (boleh laku) program diletakkan pada papan pembangunan sasaran dan dijalankan pada CPU ARM

Inilah yang dipanggil: disusun pada platform x86 dan dijalankan pada platform ARM.

Kompilasi silang selalunya ditulis sebagai kompilasi silang dalam bahasa Inggeris Terdapat juga cara penulisan lain: kompil silang, kompilasi silang, dsb.

Mengapa terdapat kompilasi silang

Sebab utama mengapa terdapat kompilasi silang ialah: terdapat terlalu sedikit sumber dalam sistem terbenam

Penjelasan khusus ialah: persekitaran sasaran di mana program yang disusun silang dijalankan mempunyai sumber yang agak terhad, jadi sukar untuk menyusunnya secara setempat secara langsung.

Situasi yang paling biasa ialah: apabila melakukan pembangunan terbenam, platform sasaran, iaitu, papan pembangunan terbenam, seperti CPU ARM dengan frekuensi maksimum 200MHz, ditambah 32M RAM, ditambah 1G Nand Flash dan seterusnya. Di bawah premis sumber perkakasan yang agak ketat, dan pada premis bahawa Linux terbenam sudah berjalan, adalah tidak mudah untuk menyusunnya secara langsung di bawah Linux terbenam atau menyusunnya di bawah CPU ARM Menyediakan program yang boleh dijalankan oleh CPU ARM. Oleh kerana penyusunan dan pembangunan memerlukan jumlah CPU, memori, cakera keras dan sumber lain yang agak besar, dan beberapa sumber untuk pembangunan terbenam hanya cukup untuk menjalankan sistem terbenam (Linux), dan tidak banyak sumber yang tinggal untuk anda gunakan secara tempatan. .

BusyBox mengandungi make dan alatan lain yang berkaitan dengan penyusunan dan pembangunan

Sejajar dengan itu, apabila anda membiasakan diri dengan pembangunan terbenam dan Busybox kemudian, sebagai contoh, konfigurasikan Busybox dalam Buildroot, atau secara berasingan Apabila menyusun silang BusyBox:

[Rekod] Kompil silang BusyBox

untuk platform lengan QEMU di bawah Ubuntu Anda akan melihat bahawa BusyBox kemudiannya juga telah menyertakan beberapa selepas fungsi telah ditambah, dan Penyusunan dan pembangunan alatan berkaitan, seperti make, dsb.

Pada asalnya, alatan ini hanya digunakan pada bahagian PC, iaitu apabila dibangunkan di bawah platform x86, ia hanya digunakan semasa kompilasi silang Alat itu kini turut disokong dalam persekitaran terbenam (BusyBox).

Pada masa ini, jika anda memilih semua alat pembangunan yang berkaitan dalam BusyBox,

Selain itu, jika konfigurasi perkakasan papan pembangunan sasaran anda cukup berkuasa, seperti CPU Ia berada dalam GHz, dan lain-lain.

Selain itu, jika perpustakaan dan alatan pembangunan yang berkaitan lengkap

Malah, sekurang-kurangnya secara teori, ia juga boleh digunakan dalam Linux terbenam anda, Conduct, limited, atau bahkan sebahagian besarnya, pembangunan tempatan, iaitu, secara langsung menjalankan pembangunan terbenam pada papan pembangunan ARM, Linux terbenam, dan melaksanakan kompilasi tempatan untuk ARM

Sebagai contoh, Dianggarkan bahawa adalah mungkin untuk menyusun helloworld.

Dengan cara ini, kompilasi silang yang disebut di sini tidak wujud, atau dielakkan, dan menjadi kompilasi setempat

yang bersamaan dengan kompilasi sebelumnya pada sisi PC x86 Kompilasi setempat daripada program yang dijalankan pada CPU x86 juga dilaksanakan dalam CPU ARM dan Linux terbenam Walau bagaimanapun, adalah jelas bahawa untuk program atau perpustakaan yang lebih kompleks, dalam Kebolehlaksanaan dan kecekapan kompilasi langsung pada papan pembangunan ARM adalah agak rendah

.

Dan jika anda sendiri bercakap tentang Uboot dan perkara lain, dan persekitaran operasi sasaran tidak mempunyai sistem (Linux terbenam) yang lengkap, maka lebih mustahil untuk mencapai kompilasi tempatan pada platform sasaran.

Anda masih boleh melakukan, seperti yang dinyatakan di sini, kompilasi silang

Pembelajaran yang disyorkan: Tutorial video Linux

Atas ialah kandungan terperinci Apakah kegunaan kompilasi silang linux?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn