Indholdsfortegnelse:

Orange PI HowTo: Kompilér Sunxi -værktøj til Windows under Windows: 14 trin (med billeder)
Orange PI HowTo: Kompilér Sunxi -værktøj til Windows under Windows: 14 trin (med billeder)

Video: Orange PI HowTo: Kompilér Sunxi -værktøj til Windows under Windows: 14 trin (med billeder)

Video: Orange PI HowTo: Kompilér Sunxi -værktøj til Windows under Windows: 14 trin (med billeder)
Video: Unreal Engine 5 Sequencer for Beginners 2024, Juli
Anonim
Orange PI HowTo: Kompilér Sunxi -værktøj til Windows under Windows
Orange PI HowTo: Kompilér Sunxi -værktøj til Windows under Windows

KRAV:

Du får brug for

  1. En (stationær) computer, der kører Windows.
  2. En internetforbindelse.
  3. Et orange PI -kort.

Det sidste er valgfrit, men jeg er sikker på, at du allerede har det. Ellers vil du ikke læse dette instruerbart.

Når du køber Orange PI -enkeltkortcomputeren, forbliver den bare et stykke dødt metal, indtil den er konfigureret korrekt. Og dens vigtigste konfigurationsfil: "script.bin" er den første nøgle til at bringe den til live. Denne fil er placeret i bootpartitionen på dit bootable SD -kort. Og heldigvis for os er denne partition i de fleste Linux -distributioner fra det officielle websted (https://www.orangepi.org/downloadresources/) FAT32 og kan let ses af enhver Windows -computer. Det forenkler virkelig tingene, da der stadig ikke er nogen pålidelig måde at skrive til Linux ext2 -partitionerne fra under Windows.

Uheldig for os har script.bin konfigurationsfilen binært format fuldstændig uvenligt til menneskelig redigering. Man har brug for en slags softwareværktøj for at dekryptere det og kryptere tilbage, efter at de nødvendige ændringer er foretaget. Og sådan et værktøjssæt findes. Det er berygtet SUNXI-VÆRKTØJ. Fluen i salven er, at den er beregnet til at køre under Linux, og vi skal enten beholde en dedikeret Linux-maskine for kun at bruge sunxi-værktøjerne, eller for at finde en måde at kompilere dem til Windows.

Jeg kunne simpelthen kompilere det og dele den eksekverbare, men man ved aldrig, om de gerne vil lave en ny udgivelse, og du får brug for en ny samling ASAP. Så jeg besluttede at lave en guide til, hvordan man kompilerer det væsentlige værktøj ud fra kilderne. Lad os komme igang.

Trin 1: Download Sunxi-værktøjer

Download Sunxi-værktøjer
Download Sunxi-værktøjer
Download Sunxi-værktøjer
Download Sunxi-værktøjer

Få den nyeste (eller nødvendige) version af kildekoden sunxi-tools. Gå til webadressen: https://github.com/linux-sunxi/sunxi-tools/releases, og vælg at downloade som zip-arkiv.

Trin 2: Udpak kildekoden

Pak zip -koden ud
Pak zip -koden ud

Når overførslen er færdig, skal du pakke kildekoden ud til den ønskede mappe. (yderligere vil jeg antage, at denne mappe er c: / sunxitools \, så erstat denne sti med din egen sti).

Trin 3: Download kode:: blokke

Download kode:: blokke
Download kode:: blokke

Hvis du har en installeret kopi af en operativ c ++ - kompilator til Windows. og hvis du ved, hvordan du bruger det, kan du direkte gå videre til trin 3. Andre bør få en ordentlig c ++ - kompilator og en shell (IDE) til at bruge den komfortabelt. Valget af mit er kode:: blokke til Windows sammen med forudinstalleret MinGW værktøjskæde. Du kan få det herfra:

Download og installer det.

Trin 4: Test din IDE

Test din IDE
Test din IDE

For at teste, om det går ok, start kodeblokke, klik på "opret et nyt projekt", vælg "konsolprogram", vælg enten c eller c ++, skriv titlen på kasseprojektet, behold standarderne urørte i det næste vindue og klik på "afslut ".

Trin 5: Fuldfør testen

Komplet test
Komplet test

Klik derefter på en grøn trekant på øverste panel i IDE, eller brug menupunktet Byg-> Kør. Hvis det gik rigtigt, skulle du se en meddelelse fra din autogenererede "Hej verden" -applikation i det sorte "DOS" -vindue.

Hvis ikke, betyder det, at IDE og kompilatoren ikke fungerer korrekt, og du bliver nødt til at undersøge, hvordan du indstiller det rigtigt. Sandsynligvis bliver du nødt til at downloade en anden version af programmeringsværktøjerne eller kontrollere deres tilladelser i din firewall/antivirus -software.

Trin 6: Opret nyt projekt

Opret nyt projekt
Opret nyt projekt
Opret nyt projekt
Opret nyt projekt
Opret nyt projekt
Opret nyt projekt
Opret nyt projekt
Opret nyt projekt

Nu skal du have en operativ C/C ++ programmerings værktøjskasse og de udpakkede sunxi-tools kildekoder i c: / sunxitools / mappe på din computer. Det er tid til at samle et projekt. Opret nyt projekt i din IDE. Vælg det almindelige C (ikke c ++) projekt af typen "konsolprogram".

Sørg for, at du opretter et projekt i mappen c: / sunxitools / og ikke et andet sted. (EG -kodeblokke har en tendens til at lave en undermappe med samme navn som projektet har. Så hvis du har navngivet dit projekt, sig "test", og prøv at placere det i c: / sunxitools \, Du kan ende med at projektet er væk til c: / sunxitools / test / hvis du ikke er opmærksom nok.) Sunxi-værktøjer indeholder flere værktøjer, men til vores formål har vi kun brug for en: det såkaldte "fexc" -værktøj.

Trin 7: Føj filer til Project

Føj filer til projekt
Føj filer til projekt

Netop "fexc" -værktøjet er ansvarlig for konvertering af script.bin til tekstformat og for bagkonvertering til binær. Det er vigtigt, at den eksekverbare af dette værktøj har navnet "fexc.exe", så det er godt, hvis du har navngivet dit projekt som "fexc". Du kan dog bruge ethvert andet navn på projektet, da du altid kan omdøbe den eksekverbare fil efter kompilering, eller enten kan du vælge "Projekt-> Egenskaber" fra den øverste rullemenu og i vinduet, der vises, skal du klikke på fanen "Byg mål", og rediger feltet "Output filnavn" for at tilsidesætte det eksekverbare navn.

Til dit autogenererede projekt Du bør kun tilføje fem kildefiler:

  • fexc.c
  • script.c
  • script_bin.c
  • script_fex.c
  • script_uboot.c

og syv header -filer:

  • list.h (flyt den fra c: / sunxitools / include / folder til c: / sunxitools / folder)
  • fexc.h
  • script.h
  • script_bin.h
  • script_fex.h
  • script_uboot.h
  • version.h

Sørg for at udelukke den autogenererede main.c fra projektet, fordi fexc.c allerede har "int main" -funktionen i det. (Husk at ethvert program kun skal have en hovedfunktion?).

Alle de nødvendige kildekodefiler er allerede i undermappen, hvor du har pakket kildekoderne ud. Hovedfilerne fortjener et par ord, hvor de kan hentes. "list.h" - er normalt i undtagermappen "inkludere" i det pakkede kildekodesæt. "version.h" - bare opret det selv. Sæt en streng som:

#define VERSION "Win32"

Gem og luk derefter filen. (Du kan dekorere den med #define's og #ifdef's, hvis du vil.)

Hvis du nu prøver at kompilere projektet, klager det over mange fejl og en manglende fil. Fejlene skyldes for det meste en smule overdreven stilfrihed, de sunxi-tools programmerere, der plejede at anvende, og den manglende fil er afhængigheden, der ikke er inkluderet i pakken med kildekoden. Lad os håndtere dette trin for trin.

Trin 8: Få Gcc til at følge ISO ISO -sprogstandarden fra 1999

Få Gcc til at følge ISO ISO -sprogstandarden fra 1999
Få Gcc til at følge ISO ISO -sprogstandarden fra 1999

For at kompilatoren ikke skal klage, stiller den for gratis programmeringsstil "с99" standarden for kompilationen. I kodeblokke skal du gå til menuen "Projekt -> Byggeindstillinger" og i "Compilerindstillinger -> Compilerflag" markere afkrydsningsfeltet "Har gcc følg 1999 ISO C -sprogstandarden". Eller du kan bare tilføje "-std = c99" til din kompilatorindstillingsstreng. Nu, hvis du forsøger at kompilere projektet, skulle disse tonsvis af fejl begynde, og du er en til en med den manglende afhængighed.

Trin 9: Find den manglende afhængighed

Find den manglende afhængighed
Find den manglende afhængighed

Den manglende afhængighed er "mman.h" -fil - overskriften på en slags linux memory manager. Windows C har oprindeligt ingen sådan fil, men der er heldigvis en Windows -port til den. Gå til https://github.com/witwall/mman-win32 for Windows. Download snapshot af git repository.

Trin 10: Pak Mman ud

Pak Mman ud
Pak Mman ud

Pak mman.c- og mman.h -filerne ud, anbring dem i mappen c: / sunxitools \.

Trin 11: Og tilføj dem til projektet

Og tilføj dem til projektet
Og tilføj dem til projektet

Trin 12: Korrekt sti

Korrekt sti
Korrekt sti

Og i filen "fex.c" raplece line:

#omfatte

til

#inkluder "mman.h"

På dette trin skal din kompilator ikke klage over noget, og du får fexc.exe med lang ventetid som output. Vær ikke glad for tidligt. Værktøjet er stadig ikke fuldt ud funktionelt. Du kan sikre dette ved at dekryptere en gyldig script.bin -fil til tekstformularen - script.fex -fil med deraf følgende kryptering af script.fex -filen tilbage til script.bin. Du bemærker muligvis, at størrelsen på det resulterende script.bin afviger en smule fra størrelsen på det originale script.bin. Og hvis du prøver at dekryptere det resulterende igen, vil det mislykkes. Hverken Orange PI fungerer med dette script.bin. For at få det funktionelle værktøj skal vi aflade en kodebombe, som nogen har lagt i kildekoden sunxi-tools. Det bliver vores næste trin.

Trin 13: Eksorcisme

Eksorcisme
Eksorcisme

For at aflade kodebomben skal du åbne fexc.c -kodefilen og finde en tekststreng med det næste indhold:

ellers hvis ((ud = åbent (filnavn, O_WRONLY | O_CREAT | O_TRUNC, 0666)) <0) {

Bare erstat det med den næste streng:

ellers hvis ((ud = åbent (filnavn, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 512)) <0) {

Hvis ikke de onde cifre "666" i den første streng, vil jeg tro, at koderen lige har glemt at bruge O_BINARY -flaget. Men dyrets antal tydeliggør hans hensigter gennemsigtigt. Find ud af, hvor genialt det er: på grund af den subtile forskel i, hvordan filerne behandles i Windows og Linux, har bomben ingen effekt, når værktøjet kompileres og bruges under Linux. Men det ødelægger alt, når værktøjet bruges under Windows.

Efter at bomben er blevet afvæbnet, kan du endelig kompilere og sikkert bruge fexc -værktøjet på din Windows stationære computer.

Trin 14: BEMÆRKNINGER

BEMÆRKNINGER
BEMÆRKNINGER

1) Hvis du vil bruge fexc -værktøjet komfortabelt, skal du få to batchfiler:

bin2fex.bat - og - fex2bin.bat.

Du kan få dem fra en let fexc.exe -build til Windows derude, eller enten kan du skrive dem selv:

  • bin2fex.bat skal indeholde "fexc -I bin -O fex script.bin script.fex"
  • fex2bin.bat skal indeholde "fexc -O bin -I fex script.fex script.bin"

2) Hvis det er svært at finde mman manager til Windows, kan man slet ikke undgå brugen. Det kræver dog meget mere redigering af fexc.c -filen og kræver i det mindste en vis viden om c. For din overbevisning deler jeg den redigerede kildekode til fexc fra sunxi-tools v1.4 fri fra afhængigheden til mman.h sammen med codeblocks projektfil og med eksempel script.bin fra nogle orange pi. Du kan downloade fexc_nomman.zip

3) Det er muligt, at de i efterfølgende versioner af sunxi-værktøjer tilføjer nogle flere afhængigheder. Find dem gerne over internettet og tilføj dem til dit kompilationsprojekt.

5) Endelig er her den forudkompilerede version af fexc.exe til Win32:

fexc_nomman.zip

Hvis du er doven nok, er du velkommen til at bruge ver. Vær dog opmærksom på, at det ikke opdateres, hvis/hvornår de nyere versioner af SunxiTools/Windows vil være tilgængelige. Så det er bedre at lære at kompilere dem end at afhænge af en fast binær build, formoder jeg.

4) "Orange PI", "Code:: Blocks", "Windows", "Linux", "Sunxi-Tools", "Allwinner" osv … er korrespondentens varemærker tilhørende deres respektive ejere.

5) Hvis din kompiler klager over ikke at finde mman -funktioner, som:

udefineret reference til '_imp_mmap'

vær opmærksom på, at definere elskere af mman -udviklingssamfundet har glemt, at koden ikke kun kan kompileres som dll -bibliotek. Det kan også være et statisk bibliotek eller en selvstændig kode, som vi har her. For at løse problemet skal du redigere filen "mman.h" som følger:

a) find strengene:

#if defineret (MMAN_LIBRARY)

#define MMANSHARED_EXPORT _declspec (dllexport) #else #define MMANSHARED_EXPORT _declspec (dllimport) #endif

b) tilføj strengen

#definer MMANSHARED_EXPORT

lige under strengene fundet på det foregående trin

Anbefalede: