Jak dodać znaczniki kompilacji Golang

Jak Dodac Znaczniki Kompilacji Golang



Tagi kompilacji w Go to zaawansowana funkcja, która pozwala nam warunkowo dołączać lub wykluczać określony kod podczas procesu kompilacji w oparciu o określone ograniczenia kompilacji. Ta elastyczność umożliwia nam tworzenie kompilacji specyficznych dla platformy dla różnych systemów operacyjnych, architektur lub innych wymagań specyficznych dla środowiska. Tagi kompilacji to specjalne komentarze dodawane na początku pliku źródłowego, tuż nad deklaracją pakietu. Tagi te dostarczają instrukcji systemowi kompilacji Go, jak postępować z kodem w tym pliku podczas procesu kompilacji.

Przykład 1: Dodaj tag kompilacji Golang dla systemu Linux

Aby kierować reklamy na system operacyjny Linux, możemy dodać znacznik kompilacji „// +build linux”.

//idź zbudować Linuksa

// +zbuduj Linuksa

pakiet główny

import „fm”

funk główny () {

fmt . Drukuj ( „Witaj, przykład systemu Linux” )

}

Tutaj ustawiamy ograniczenia kompilacji w Go, które określają, że kod powinien być budowany tylko wtedy, gdy systemem docelowym jest Linux. Następnie definiujemy pakiet i importujemy wymaganą instrukcję dla kodu. Następnie wchodzimy w metodę main(), w której drukujemy wiadomość za pomocą wywołania „Println” z pakietu „fmt”.







W ten sposób komunikat zostanie pomyślnie wyświetlony na konsoli dla systemu operacyjnego Linux:





Przykład 2: Dodaj znacznik kompilacji Golang dla systemu Windows

Kiedy chcemy, aby kod został wykonany na platformie Windows, używamy znacznika kompilacji „// +build Windows” na początku pliku. Na tej podstawie możemy mieć pewność, że kod zostanie włączony do kompilacji tylko wtedy, gdy zamierzoną platformą jest Windows.





// +zbuduj okna

pakiet główny

import „fm”

funk główny () {

fmt . Drukuj ( „Witam, przykład Windows!” )

}

W tym przypadku używamy ograniczenia kompilacji „// +build Windows”, aby mieć pewność, że kod zostanie skompilowany i wykonany tylko podczas kompilacji na platformę Windows. Następnie dołączamy niezbędny pakiet do kodu z modyfikatorem package i import. Następnie pojawia się funkcja main(), która wykorzystuje funkcję println() do wydrukowania instrukcji podczas budowania znaczników okna w Golang.

Kiedy budujemy i uruchamiamy ten program w systemie Windows, wyświetla się komunikat „Witaj, przykład Windows!” wiadomość do konsoli. Należy pamiętać, że program nie zostanie skompilowany ani wykonany w innych systemach operacyjnych ze względu na ograniczenia kompilacji.



Przykład 3: Dodaj znacznik kompilacji Golang dla systemu innego niż Windows

I odwrotnie, jeśli chcemy wykluczyć kod podczas budowania dla systemu Windows, możesz użyć znaku „!” wykrzyknik ze znacznikiem kompilacji.

// +kompiluj !windows

pakiet główny

import „fm”

funk główny () {

fmt . Drukuj ( „Witam, z wyjątkiem systemu Windows!” )

}

Tutaj budujemy dyrektywę ograniczeń, która wskazuje, że kod powinien zostać zbudowany i wykonany na platformach innych niż Windows. Wykrzyknik (!) przed systemem Windows oznacza, że ​​ten kod powinien zostać dołączony do wszystkich platform z wyjątkiem systemu Windows. Następnie postępujemy z tym samym programem, co w poprzedniej funkcji, gdzie najpierw dodajemy pakiety i wywołujemy funkcję main(), aby wykonać komunikat przekazywany wewnątrz funkcji println().

W ten sposób dane wyjściowe generują komunikat na konsolach systemu operacyjnego. Należy pamiętać, że nie zostanie on uruchomiony w systemie operacyjnym Windows ze względu na ograniczenia kompilacji:

Przykład 4: Dodaj znacznik kompilacji Golang z logiką OR

Aby uwzględnić kod w przypadku kierowania na system Windows LUB Linux, możemy użyć tagu kompilacji „// +build Windows Linux”.

// +kompiluj system Windows Linux

pakiet główny

import „fm”

funk główny () {

fmt . Drukuj ( „Hej, użytkownicy systemu Windows lub Linux” )

}

Tutaj stosujemy ograniczenie kompilacji z logicznym OR, które ma zostać zbudowane zarówno dla systemów operacyjnych Windows, jak i Linux. Wiersz „// +build Windows Linux” określa, że ​​ten plik powinien zostać uwzględniony w kompilacji, jeśli platformą docelową jest Windows lub Linux. Następnie importujemy pakiet „fmt” ze standardowej biblioteki Go, który zapewnia podstawową funkcjonalność wejścia i wyjścia. W funkcji main wypisujemy ciąg znaków „Hej, użytkownicy systemu Windows lub Linux” za pomocą funkcji Println() z pakietu „fmt”.

W związku z tym dane wyjściowe zostaną pobrane poniżej. Ten sam komunikat jest generowany niezależnie od tego, czy korzystamy z systemu operacyjnego Windows, czy Linux:

Przykład 5: Dodaj znacznik kompilacji Golang z logiką AND

Możemy określić wiele znaczników kompilacji, aby utworzyć bardziej złożone warunki. Komendy „// +build Windows,linux” można użyć do wygenerowania kodu zarówno dla systemu Linux, jak i Windows.

// +kompiluj okna,386

pakiet główny

import „fm”

funk główny () {

fmt . Drukuj ( „To jest 32-bitowy system Windows” )

}

W tym przypadku zdefiniowane ograniczenie kompilacji to „// +build Windows,386”, które określa, że ​​plik Go powinien zostać uwzględniony w kompilacji, gdy platformą docelową jest 32-bitowy system Windows. Zauważ, że używamy przecinka „,” pomiędzy Windows i 386, który działa jak operator logiczny AND. Oznacza to, że oba warunki muszą zostać spełnione, aby kod został uwzględniony w kompilacji.

Następnie, podobnie jak w poprzednim przykładzie, importujemy pakiet „fmt” ze standardowej biblioteki Go, aby użyć funkcji Println() jako wyniku. Mamy funkcję main() programu, w której instrukcja jest przekazywana jako argument do funkcji println().

Kiedy budujemy i uruchamiamy ten program w 32-bitowym systemie Windows, wyświetla on określony komunikat jako wynik. Jeśli jednak spróbujemy go zbudować i uruchomić w innym systemie operacyjnym lub architekturze, nie zostanie on uwzględniony w kompilacji:

Przykład 6: Dodaj znacznik kompilacji Golang dla określonej funkcji

Co więcej, znaczniki kompilacji można również zastosować do określonych funkcji w pliku. Ze względu na ograniczenia kompilacji możemy teraz warunkowo dołączać lub usuwać określone funkcje.

pakiet główny

import „fm”

funk główny () {

fmt . Drukuj ( „Hej, ciesz się!” )

wydrukuj wiadomość Windows ()

}

// +zbuduj okna

funk wydrukuj wiadomość Windows () {

fmt . Drukuj ( „Witam z systemu operacyjnego Windows” )

}

Tutaj przejdziemy teraz do metody main(), która wykorzystuje metodę Println() dostarczoną przez pakiet „fmt” do wydrukowania wiadomości na początku. Następnie wdrażamy funkcję printWindowsMessage() poniżej funkcji main() i określamy ograniczenie kompilacji „// +build Windows”. Oznacza to, że funkcja jest uwzględniona w kompilacji tylko wtedy, gdy platformą docelową jest system Windows.

Na koniec ustawiamy funkcję printWindowsMessage() tak, aby drukowała określony komunikat „Witajcie w systemie operacyjnym Windows” za pomocą funkcji Println().

W ten sposób pobierane są dane wyjściowe, które wyświetlają zarówno komunikat ogólny, jak i komunikat specyficzny dla platformy. Zauważ, że jeśli zbudujemy i uruchomimy go na innym systemie operacyjnym, funkcja printWindowsMessage() nie zostanie uwzględniona w kompilacji, a wyświetli się jedynie ogólny komunikat:

Wniosek

Dodanie tagów kompilacji w Go zapewnia możliwość dostosowania dołączania kodu podczas procesu kompilacji. Wykorzystując tagi kompilacji, możemy tworzyć kompilacje specyficzne dla platformy, optymalizować kod dla różnych architektur, a nawet warunkowo włączać określone funkcje lub cechy.