Rumah > Artikel > Operasi dan penyelenggaraan > Apakah kegunaan kompilasi silang linux?
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.
Persekitaran pengendalian tutorial ini: sistem linux7.3, komputer Dell G3.
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!