Daftar Isi:
- Langkah 1: Unduh Sunxi-tools
- Langkah 2: Buka zip Sourcecode
- Langkah 3: Unduh Kode::blok
- Langkah 4: Uji IDE Anda
- Langkah 5: Selesaikan Tes
- Langkah 6: Buat Proyek Baru
- Langkah 7: Tambahkan File ke Proyek
- Langkah 8: Minta Gcc Mengikuti Standar Bahasa ISO C 1999
- Langkah 9: Temukan Ketergantungan yang Hilang
- Langkah 10: Buka kemasan Mman
- Langkah 11: Dan Tambahkan Mereka ke Proyek
- Langkah 12: Jalur yang Benar
- Langkah 13: Eksorsisme
- Langkah 14: CATATAN
Video: Orange PI HowTo: Kompilasi Alat Sunxi untuk Windows Di Bawah Windows: 14 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:58
PRASYARAT:
Anda akan perlu
- Komputer (desktop) yang menjalankan Windows.
- Koneksi internet.
- Papan PI Oranye.
Yang terakhir adalah opsional, tetapi saya yakin, Anda sudah memilikinya. Jika tidak, Anda tidak akan membaca instruksi ini.
Ketika Anda membeli komputer papan tunggal Orange PI, komputer itu hanya tinggal sepotong logam mati sampai dikonfigurasi dengan benar. Dan file konfigurasi utamanya: "script.bin" adalah kunci pertama untuk menghidupkannya. File ini terletak di partisi boot kartu SD yang dapat di-boot. Dan untungnya bagi kami, di sebagian besar distribusi Linux dari situs Resmi (https://www.orangepi.org/downloadresources/) partisi ini adalah FAT32 dan dapat dengan mudah dilihat oleh komputer Windows mana pun. Itu benar-benar menyederhanakan banyak hal, karena masih belum ada cara yang dapat diandalkan untuk menulis ke dalam partisi Linux ext2 dari bawah Windows.
Sayangnya bagi kami, file konfigurasi script.bin memiliki format biner yang sama sekali tidak ramah untuk pengeditan manusia. Seseorang membutuhkan semacam alat perangkat lunak untuk mendekripsi dan crypt kembali setelah modifikasi yang diperlukan telah dibuat. Dan perangkat seperti itu memang ada. Ini adalah SUNXI-TOOLS yang terkenal. Kelebihannya adalah bahwa itu dimaksudkan untuk berjalan di Linux dan kita harus menyimpan mesin Linux khusus hanya untuk menggunakan sunxi-tools, atau untuk menemukan cara bagaimana mengkompilasinya untuk windows.
Saya dapat dengan mudah mengkompilasinya dan membagikan executable-nya, tetapi orang tidak pernah tahu apakah mereka ingin membuat rilis baru dan Anda akan membutuhkan kompilasi baru secepatnya. Jadi saya memutuskan untuk membuat panduan bagaimana mengkompilasi alat penting dari sumbernya. Mari kita mulai.
Langkah 1: Unduh Sunxi-tools
Dapatkan kode sumber sunxi-tools versi terbaru (atau perlu). Buka URL: https://github.com/linux-sunxi/sunxi-tools/releases dan pilih untuk mengunduh sebagai arsip zip.
Langkah 2: Buka zip Sourcecode
Setelah unduhan selesai, unzip kode sumber ke folder pilihan Anda. (selanjutnya saya akan berasumsi bahwa folder ini adalah c:\sunxitools\, jadi ganti jalur ini dengan jalur Anda sendiri).
Langkah 3: Unduh Kode::blok
Jika Anda memiliki salinan yang diinstal dari beberapa kompiler c ++ operasional untuk windows. dan jika Anda tahu cara menggunakannya, Anda dapat langsung melanjutkan ke langkah 3. Orang lain harus mendapatkan kompiler c++ yang tepat dan shell (IDE) untuk menggunakannya dengan nyaman. Pilihan saya adalah code::blocks untuk Windows bersama dengan toolchain MinGW yang sudah diinstal sebelumnya. Anda bisa mendapatkannya dari sini:
Unduh dan instal.
Langkah 4: Uji IDE Anda
Untuk menguji apakah semuanya berjalan baik, mulai blok kode, klik "buat proyek baru", pilih "aplikasi konsol", pilih c atau c++, ketik judul proyek checkout, biarkan default tidak tersentuh di jendela berikutnya dan klik "selesai ".
Langkah 5: Selesaikan Tes
Kemudian klik segitiga hijau di panel atas IDE atau gunakan titik menu Build->Run. Jika semuanya berjalan dengan baik Anda akan melihat pesan dari aplikasi "Hello world" Anda yang dibuat secara otomatis di jendela "DOS" hitam.
Jika tidak, itu berarti IDE dan kompilernya tidak bekerja dengan benar dan Anda harus menyelidiki cara mengaturnya dengan benar. Mungkin Anda harus mengunduh alat pemrograman versi lain atau memeriksa izinnya di perangkat lunak firewall/antivirus Anda.
Langkah 6: Buat Proyek Baru
Sekarang Anda seharusnya memiliki toolkit programer C/C++ operasional dan kode sumber sunxi-tools yang telah dibongkar di folder c:\sunxitools\ di komputer Anda. Saatnya untuk merakit sebuah proyek. Buat proyek baru di IDE Anda. Pilih proyek C (bukan c++) biasa dari tipe "aplikasi konsol".
Pastikan Anda membuat proyek di folder c:\sunxitools\ dan bukan di tempat lain. (EG codeblock cenderung membuat subfolder dengan nama yang sama dengan nama proyek. Jadi, jika Anda telah menamai proyek Anda, katakan "test", dan coba letakkan di c:\sunxitools\, Anda mungkin berakhir dengan proyek hilang ke c:\sunxitools\test\ jika Anda tidak cukup perhatian.) Sunxi-tools berisi beberapa utilitas, tetapi untuk tujuan kita, kita hanya memerlukan satu: yang disebut utilitas "fexc".
Langkah 7: Tambahkan File ke Proyek
Utilitas "fexc" yang tepat bertanggung jawab untuk konversi script.bin ke dalam format teks dan untuk konversi kembali ke biner. Sangat penting bahwa executable dari utilitas ini memiliki nama "fexc.exe", jadi bagus jika Anda menamai proyek Anda sebagai "fexc". Namun Anda dapat menggunakan nama lain dari proyek, karena Anda selalu dapat mengganti nama yang dapat dieksekusi setelah kompilasi, atau Anda dapat memilih "Proyek-> Properti" dari menu pull-down atas dan di jendela yang muncul klik tab "Bangun target", dan edit bidang "Nama file keluaran" di sana untuk mengganti nama yang dapat dieksekusi.
Untuk proyek autogenerated Anda Anda harus menambahkan hanya lima file sumber:
- fexc.c
- script.c
- script_bin.c
- script_fex.c
- script_uboot.c
dan tujuh file header:
- list.h (pindahkan dari folder c:\sunxitools\include\ ke folder c:\sunxitools)
- fexc.h
- script.h
- script_bin.h
- script_fex.h
- script_uboot.h
- versi.h
Pastikan untuk mengecualikan main.c yang dibuat secara otomatis dari proyek, karena fexc.c sudah memiliki fungsi "int main" di dalamnya. (Ingat bahwa setiap program seharusnya hanya memiliki satu fungsi utama?).
Semua file kode sumber yang diperlukan sudah ada di subfolder, tempat Anda membongkar kode sumber. File header layak mendapatkan sepasang kata, di mana mendapatkannya. "list.h" - biasanya ada di subfolder "include" dari kumpulan kode sumber yang belum dibongkar. "version.h" - buat saja sendiri. Letakkan di sana string seperti:
#menentukan VERSI "Win32"
Kemudian simpan dan tutup file. (Anda dapat menghiasnya dengan #define dan #ifdef jika Anda mau.)
Jika Anda sekarang mencoba untuk mengkompilasi proyek itu akan mengeluh tentang banyak kesalahan dan satu file yang hilang. Kesalahan sebagian besar disebabkan oleh sedikit kebebasan gaya yang berlebihan, programer sunxi-tools yang digunakan untuk menerapkan, dan file yang hilang adalah ketergantungan yang tidak disertakan ke dalam paket kode sumber. Mari kita tangani ini selangkah demi selangkah.
Langkah 8: Minta Gcc Mengikuti Standar Bahasa ISO C 1999
Agar kompiler tidak mengeluh gaya pemrograman yang terlalu bebas, atur standar kompilasi "с99". Dalam blok kode, buka menu "Project -> Build Options" dan di "Compiler Settings -> Compiler Flags" centang kotak "Minta gcc mengikuti standar bahasa ISO C 1999". Atau Anda bisa menambahkan "-std=c99" ke dalam string opsi kompiler Anda. Sekarang jika Anda mencoba mengkompilasi proyek, banyak kesalahan itu akan hilang dan Anda satu-satu dengan ketergantungan yang hilang.
Langkah 9: Temukan Ketergantungan yang Hilang
Ketergantungan yang hilang adalah file "mman.h" - header dari beberapa jenis manajer memori linux. Windows C secara asli tidak memiliki file seperti itu, tetapi untungnya ada port windows-nya. Buka https://github.com/witwall/mman-win32 untuk windows. Unduh snapshot repositori git.
Langkah 10: Buka kemasan Mman
Buka kemasan file mman.c dan mman.h, letakkan di folder c:\sunxitools\.
Langkah 11: Dan Tambahkan Mereka ke Proyek
Langkah 12: Jalur yang Benar
Dan di file raplece baris "fex.c":
#termasuk
ke
#sertakan "mman.h"
Pada langkah ini compiler Anda tidak akan mengeluh apapun dan Anda akan mendapatkan fexc.exe menunggu lama sebagai output. Jangan bahagia terlalu dini. Utilitas masih belum sepenuhnya berfungsi. Anda dapat memastikan ini dengan mendekripsi beberapa file script.bin yang valid ke dalam bentuk teks - file script.fex dengan konsekuensi mengenkripsi file script.fex kembali ke dalam script.bin. Anda mungkin memperhatikan bahwa ukuran script.bin yang dihasilkan sedikit berbeda dari ukuran script.bin asli. Dan jika Anda mencoba mendekripsi hasilnya sekali lagi, itu akan gagal. Baik Orange PI tidak akan berfungsi dengan script.bin ini. Untuk mendapatkan utilitas fungsional, kita harus melepaskan bom kode, yang telah dimasukkan seseorang ke dalam kode sumber sunxi-tools. Itu akan menjadi langkah kami selanjutnya.
Langkah 13: Eksorsisme
Untuk melepaskan bom kode, buka file kode fexc.c dan temukan di sana string teks dari konten berikutnya:
else if ((keluar = buka(nama file, O_WRONLY|O_CREAT|O_TRUNC, 0666)) < 0) {
Ganti saja dengan string berikutnya:
else if ((keluar = buka(nama file, O_WRONLY|O_CREAT|O_TRUNC|O_BINARY, 512))<0){
Jika bukan angka jahat "666" di string pertama, saya pikir pembuat kode baru saja lupa menggunakan flag O_BINARY. Tapi Number of The Beast mengklarifikasi niatnya secara transparan. Bayangkan, betapa cerdiknya itu: karena perbedaan halus dalam cara file diproses di Windows dan Linux, bom itu tidak berpengaruh ketika utilitas dikompilasi dan digunakan di Linux. Tapi itu merusak segalanya ketika utilitas digunakan di bawah Windows.
Setelah bom dilucuti, Anda akhirnya dapat mengkompilasi dan menggunakan utilitas fexc dengan aman di komputer desktop Windows Anda.
Langkah 14: CATATAN
1) Untuk menggunakan utilitas fexc dengan nyaman, Anda harus mendapatkan dua file batch:
bin2fex.bat - dan - fex2bin.bat.
Anda bisa mendapatkannya dari beberapa build fexc.exe yang gagal untuk Windows di luar sana, atau Anda bisa mengetiknya Sendiri:
- bin2fex.bat harus berisi "fexc -I bin -O fex script.bin script.fex"
- fex2bin.bat harus berisi "fexc -O bin -I fex script.fex script.bin"
2) Jika sulit menemukan manajer mman untuk Windows, seseorang dapat menghindari penggunaannya sama sekali. Namun dibutuhkan lebih banyak pengeditan file fexc.c dan membutuhkan setidaknya beberapa pengetahuan tentang c. Demi kenyamanan Anda, saya membagikan kode sumber fexc yang telah diedit dari sunxi-tools v1.4 bebas dari ketergantungan pada mman.h bersama dengan file proyek blok kode dan dengan contoh script.bin dari beberapa pi oranye. Anda dapat mengunduh fexc_nomman.zip
3) Ada kemungkinan bahwa dalam versi berikutnya dari sunxi-tools mereka akan menambahkan beberapa dependensi lagi. Jangan ragu untuk menemukannya melalui internet dan menambahkannya ke proyek kompilasi Anda.
5) Akhirnya di sini adalah versi fexc.exe yang telah dikompilasi untuk Win32:
fexc_nomman.zip
Jika Anda cukup malas, silakan gunakan ver. Namun berhati-hatilah bahwa itu tidak akan diperbarui jika/ketika versi SunxiTools/Windows yang lebih baru akan tersedia. Jadi lebih baik mempelajari cara mengompilasinya daripada bergantung pada beberapa build biner tetap, saya kira.
4) "Oranye PI", "Kode::Blocks", "Windows", "Linux", "Sunxi-Tools", "Allwinner", dll… adalah merek dagang koresponden dari pemiliknya masing-masing.
5) Jika Anda mengeluh tentang tidak menemukan fungsi mman, seperti:
referensi tidak terdefinisi ke '_imp_mmap'
perlu diketahui bahwa pecinta komunitas pengembangan mman telah lupa bahwa kode tersebut dapat dikompilasi tidak hanya sebagai perpustakaan dll. Itu juga bisa berupa perpustakaan statis atau kode mandiri seperti yang kita miliki di sini. Untuk memperbaiki masalah edit file "mman.h" sebagai berikut:
a) temukan string:
#jika ditentukan(MMAN_LIBRARY)
#define MMANSHARED_EXPORT _declspec(dllexport) #else #define MMANSHARED_EXPORT _declspec(dllimport) #endif
b) tambahkan string
#define MMANSHARED_EXPORT
tepat di bawah string yang ditemukan pada langkah sebelumnya
Direkomendasikan:
Kompilasi Kernel RT 64bit untuk Raspberry Pi 4B .: 5 Langkah
Kompilasi Kernel RT 64bit untuk Raspberry Pi 4B.: Tutorial ini akan mencakup proses pembuatan dan pemasangan Kernel Real Time 64 bit pada Raspberry Pi. Kernel RT sangat penting untuk fungsionalitas penuh ROS2 dan solusi IOT Waktu Nyata lainnya. Kernel diinstal pada Raspbian berbasis x64 yang dapat
Orange PI HowTo: Mengaturnya untuk Digunakan Dengan Layar LCD TFT HDMI 5": 8 Langkah (dengan Gambar)
Orange PI Cara: Mengaturnya untuk Digunakan Dengan Layar LCD TFT HDMI 5": Jika Anda cukup bijaksana untuk memesan Layar LCD TFT HDMI bersama PI Oranye Anda, Anda mungkin berkecil hati dengan kesulitan dalam mencoba memaksanya bekerja .Sementara yang lain bahkan tidak bisa mencatat kendala apa pun.Kuncinya adalah ada le
Orange PI HowTo: Mengaturnya untuk Digunakan Dengan Tampilan Spion Mobil dan Adaptor HDMI ke RCA: 15 Langkah
Orange PI Cara: Mengaturnya untuk Digunakan Dengan Tampilan Spion Mobil dan Adaptor HDMI ke RCA: KATA PENGANTAR.Sepertinya setiap orang menggunakan TV atau monitor yang besar dan bahkan lebih besar dengan papan Orange PI yang konyol. Dan sepertinya sedikit berlebihan jika ditujukan untuk sistem tertanam. Di sini kita membutuhkan sesuatu yang kecil dan sesuatu yang murah. Seperti
Petunjuk untuk Menyelesaikan Mock-Up Desain Slide Track untuk Lift/Bawah Pijakan Kaki yang Dipasang di Tengah pada Kursi Roda Listrik: 9 Langkah (dengan Gambar)
Petunjuk tentang Penyelesaian Mock-Up Desain Geser Track untuk Pengangkatan/Bawah Pijakan Kaki yang Dipasang di Tengah pada Kursi Roda Listrik: Pengangkat pijakan kaki yang dipasang di tengah untuk disimpan di bawah kursi dengan baik, dan lebih rendah untuk dipasang. Mekanisme untuk pengoperasian independen penyimpanan dan penempatan pijakan kaki tidak termasuk dalam kursi roda listrik pasar, dan pengguna PWC telah menyatakan kebutuhannya
Pena IR Minimalis: Tanpa Solder, Di Bawah Satu Menit, Di Bawah Satu Dolar.: 3 Langkah
Pena IR Minimalis: Tanpa Solder, Di Bawah Menit, Di Bawah Dolar.: Instruksi pertama saya, semoga bermanfaat: Jika Anda ingin menguji JC Lee (JC adalah singkatan dari Johnny Chung, tetapi dia juga melakukan keajaiban. ..) atau program Smoothboard di www.smoothboard.net (tahun cahaya ke depan, karena Boon Jin mulai