Hogyan könnyítse meg a fejlesztését a Makefiles segítségével

Hogyan könnyítse meg a fejlesztését a Makefiles segítségével
Az Önhöz hasonló olvasók támogatják a MUO-t. Amikor a webhelyünkön található linkek használatával vásárol, társult jutalékot kaphatunk. Olvass tovább.

A modern szoftverfejlesztésben a hatékony építési automatizálás kulcsfontosságú a projektek sikeréhez. A Makefiles, egy népszerű build-automatizálási eszköz, amely az összes verem fejlesztői számára tömör és hatékony módszert biztosít az összetett összeállítási folyamatok kezelésére.





A Makefiles Go-val való integrálásával és együttműködésével automatizálhatja az ismétlődő feladatokat, ésszerűsítheti az építési folyamatokat és növelheti a termelékenységet.





MAKEUSEOF A NAP VIDEÓJA GÖRGÖZSEN A TARTALOM FOLYTATÁSHOZ

A Makefiles megértése

  a népszerű makefile logó

A Makefiles működésének megértése kulcsfontosságú a projektfelépítések hatékony szervezéséhez és automatizálásához.





A makefile-ek meghatározott struktúrát és szintaxist követnek a projektek felépítésére és karbantartására vonatkozó szabályok meghatározásához. A Makefile lényegében a célokat, függőségeket és parancsokat meghatározó szabályokból áll. Minden szabály egy céllal kezdődik, amelyet a függőségei és a cél létrehozásához vagy végrehajtásához szükséges parancsok követnek.

A célpontok a Makefile kívánt kimeneti fájljait vagy műveleteit jelentik. A célok lehetnek a feladatot leíró fájlnevek vagy címkék. Például egy nevű célpont tiszta eltávolíthatja a felépítési folyamat során keletkezett szükségtelen fájlokat.



A függőségek a cél létrehozásához szükséges fájlok vagy feladatok. Ha bármilyen függőséget módosítanak, a Makefile újraépíti a kapcsolódó célokat, hogy biztosítsa a projekt szükséges részei működését. A függőségeket a cél után adja meg, szóközökkel elválasztva.

A parancsok cselekvések ill shell parancsok amelyek végrehajtásra szorulnak konkrét célok létrehozásához vagy végrehajtásához. A parancsokat általában az operációs rendszer shell szkriptnyelvén írják.





A felismeréshez minden parancsnak tabulátor karakterrel kell kezdődnie.

 build: main.go utils.go 
    go build -o myapp main.go utils.go

clean:
    rm myapp

A fenti Makefile-ban két cél található: épít és tiszta .





hogyan állítsunk be gif -et háttérként

A épít a cél attól függ fő.go és utils.go fájlokat, és a kapcsolódó parancs fut a Go fordítón, hogy létrehozzon egy nevű végrehajtható fájlt myapp .

Másrészt a tiszta cél eltávolítja a myapp végrehajtható.

A Go kód összeállításához navigáljon a munkakönyvtárba, és futtassa a építeni parancs.

 make build 

A Make eszköz kezeli a fordítási folyamatot, lehetővé téve, hogy a kódírásra összpontosítson.

Makefile-ok beállítása Go projektjeihez

A Makefiles segítségével elkészítheti és fordíthatja programjait, kódteszteket és minőségellenőrzéseket végezhet, valamint folyamatos integrációt és telepítést végezhet.

Futtassa ezt a parancsot egy Makefile létrehozásához a projekthez a gyökérkönyvtárban. A Makefile belépési pontként szolgál majd az összeállítási feladatok meghatározásához.

 touch Makefile 

A Makefile nem tartalmazhat kiterjesztést.

A Makefile létrehozása után parancsokat, függőségeket és célokat írhat a fájlba a projekt műveleteihez.

Íme egy példa a Makefile-re, amely építkezési automatizálási eszközként szolgál a projekthez:

 # Makefile 

# Variables
GOCMD=go
GOBUILD=$(GOCMD) build
GOTEST=$(GOCMD) test
GOCLEAN=$(GOCMD) clean

# Targets
build:
    $(GOBUILD) -o app .

test:
    $(GOTEST) ./...

clean:
    $(GOCLEAN)
    rm -f app

Testreszabhatja Makefile-jét projektje egyedi igényei szerint.

Íme a Makefile egy módosított verziója, amely további jelzők és környezeti változók átadására szolgál a projekt teszt- vagy összeállítási folyamata során:

 # Makefile 

# Variables
GOCMD=go
GOBUILD=$(GOCMD) build
GOTEST=$(GOCMD) test
GOCLEAN=$(GOCMD) clean
BINARY_NAME=app
TEST_FLAGS=-v

# Targets
build:
    $(GOBUILD) -o $(BINARY_NAME) .

test:
    $(GOTEST) $(TEST_FLAGS) ./...

clean:
    $(GOCLEAN)
    rm -f $(BINARY_NAME)

Ebben a Makefile-ban két új változó található BINARY_NAME és TEST_FLAGS . A BINARY_NAME változó adja meg a generált futtatható fájl nevét.

A TEST_FLAGS változó lehetővé teszi további jelzők megadását tesztek futtatásakor (ebben az esetben a -ban ben jelző lehetővé teszi a részletes kimenetet a tesztvégrehajtás során).

A Makefiles emellett egyszerű módot biztosít a környezeti változók és jelzők konfigurálására a projekthez.

Ezeket a sorokat hozzáadhatja a Makefile-hoz, ha be kell állítania a GOOS és GOARCH változókat a projekt egy adott operációs rendszerhez vagy architektúrához való felépítéséhez.

 # Makefile 

# Variables
GOCMD=go
GOBUILD=$(GOCMD) build
GOTEST=$(GOCMD) test
GOCLEAN=$(GOCMD) clean
BINARY_NAME=app
TEST_FLAGS=-v
GOOS=linux
GOARCH=amd64

# Targets
build:
    $(GOBUILD) -o $(BINARY_NAME) .

test:
    $(GOTEST) $(TEST_FLAGS) ./...

clean:
    $(GOCLEAN)
    rm -f $(BINARY_NAME)

A frissített Makefile-ban két új változó található a GOOS és GOARCH környezeti változók, amelyek lehetővé teszik a cél operációs rendszer és architektúra megadását a buildhez (ebben az esetben a GOOS változó értékre van állítva Linux és GOARCH nak nek amd64 hogy a projektet Linuxra x86-64 architektúrára építsék).

Ne felejtse el adaptálni ezeket a változókat a projekt specifikus követelményeihez.

Hivatkozhat a Menj a dokumentációhoz a támogatott értékek listájához GOOS és GOARCH ha más platformra kell építeni.

Építsen automatizálást Makefiles segítségével

A makefile-ok hasznosak kódfordításhoz, dokumentációk generálásához és függőségek kezeléséhez is.

A Makefiles segítségével automatizálhatja a fordítási időt, így időt és erőfeszítést takaríthat meg.

Itt van egy Makefile, amely egy Go programot fordít:

 # Define variables 
GOCMD = go
GOBUILD = $(GOCMD) build
BINARY_NAME = myprogram

# Default target
all: build

# Build target
build:
    $(GOBUILD) -o $(BINARY_NAME)

# Clean target
clean:
    rm -f $(BINARY_NAME)

A Makefile olyan változókat határoz meg, mint a GOCMD (a Menj parancs) és GOBUILD (a build parancs). A épít a cél meghívja a menj építeni parancsot a Go program lefordításához és a megadott névvel ( az én programom ebben az esetben). A tiszta A target eltávolítja a generált binárist a projektből.

  makefile működés közben a programok felépítéséhez

A Makefiles segítségével automatizálhatja a függőségek telepítését, és frissítheti projektje külső függőségeit.

 # Define variables 
GOCMD = go
GOBUILD = $(GOCMD) build
GOGET = $(GOCMD) get
BINARY_NAME = myprogram

# Default target
all: build

# Build target
build:
    $(GOBUILD) -o $(BINARY_NAME)

# Install dependencies
deps:
    $(GOGET) -u

# Clean target
clean:
    rm -f $(BINARY_NAME)

A Makefile-nek van egy adósság cél, amely a szerezz parancs a projektfüggőségek telepítéséhez vagy frissítéséhez. Futhatsz depeket készíteni a projekt függőségeinek telepítéséhez.

A Makefiles automatizálhatja a dokumentáció generálását és javíthatja a docs kódfolyamatként .

hogyan kell professzionálisan szerkeszteni a képeket a gimp -ben

Íme, hogyan teheti meg automatikusan generálhat dokumentációt Go-projektjeihez a godoc eszközzel és Makefile:

 # Define variables 
GODOC = godoc
DOCS_DIR = docs

# Default target
all: docs

# Generate documentation
docs:
    $(GODOC) -html -dir . > $(DOCS_DIR)/index.html

# Clean target
clean:
    rm -rf $(DOCS_DIR)

A Makefile-ban a dok a cél meghívja a goddoc parancsot a -html jelölje meg a HTML-dokumentáció létrehozásához a go kódhoz, és elmenti a dokumentációt a dok Könyvtár.

Te fogod futtatni a készíts dokumentumokat parancsot a Go projekt naprakész dokumentációjának generálásához.

A Makefile-ok hasznosak Unix-alapú operációs rendszerekkel való munkavégzéshez

A Makefiles rugalmasságának kihasználásával egyedi összeállítási parancsokat definiálhat, és néhány percen belül összetett feladatokat hajthat végre. A Makefile időt takarít meg, és biztosítja a konzisztenciát és a reprodukálhatóságot az építési környezetekben.

A Makefiles másik előnye a Unix alapú rendszerekkel való kompatibilitása. A Make egy széles körben támogatott segédprogram Unix-alapú operációs rendszereken, beleértve a Linuxot és a macOS-t is, így hordozható és megbízható eszköz a fejlesztők számára.