草庐IT

Makefile

全部标签

【Linux】项目自动化构建工具——make/Makefile及拓展

文章目录一、Linux项目自动化构建工具-make/Makefile1、背景知识2、实现代码3、原理4、清理4.1.清理文件/临时数据4.2.伪目标4.3.三个时间5、推导规则二、小程序进度条三、拓展使用git命令行一、Linux项目自动化构建工具-make/Makefile1、背景知识一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提

package - 去 Makefile 困惑

我正在编写一个Go程序包,我们称它为coolstuff。我想包含一个example.go文件,该文件运行来自coolstuffAPI的示例。但是默认的Makefile不会构建coolstuff包和example.go,提示:example.go:1:packagemain;expectedcoolstuffexample.go:3:can'tfindimport:coolstuff我如何才能a)编译包,b)安装包,以便我以后编写的任何代码都知道如何找到coolstuff,以及c)构建依赖于coolstuff的example.go?我是否需要两个Makefile,一个用于包,一个用于ex

go - 特定目标的 Makefile 环境变量

我正在开发一个具有如下Makefile的go项目。请注意,“release”目标设置了两个环境变量,以便“build”目标针对特定架构(可能不是构建系统的架构)进行交叉编译。#Generatesacontainerreleaseartifact.release:exportGOOS=linuxrelease:exportGOARCH=amd64release:builddockerbuild...#Generatesanexecutableforlocaluse.build:testgobuild...test:fmtvetgotest./......问题是GOOS和GOARCH环境变

go - golang 应用程序的 Makefile 到 gradle 转换

我有一个golang应用程序,它公开了一个restAPI并将信息记录到数据库中。我正在尝试将make文件转换为gradle构建。有没有类似maven2gradle插件的默认方式或者应该手动编写gradle构建文件?我检查了gradle和make文件之间的语法差异,但仍然不清楚将运行时参数传递给类似于的gradlerun:build./hello-conf=/apps/content/properties/prop.json-v=0-logDest="FILE"-log_dir="/var/log/logdir"hello是我的可执行文件,其他是运行时参数。这是我第一次尝试将make迁移

makefile - GNU Make 简单扩展变量和自动变量

我有一个相当简单的Go项目makefile,我希望能够运行类似于:全部释放为了为几个不同的平台(例如windows、linux、darwin)构建版本。我的make文件目前看起来像这样:GOOSES=darwinwindowslinuxGOARCHS=amd64386.PHONY:release-all$(GOOSES)$(GOARCHS)release:$(GOOSES)$(GOOSES):GOOS:=app$@$(GOOSES):$(GOARCHS)$(GOARCHS):GOARCH:=$@$(GOARCHS):buildbuild:GOOS=$(GOOS)GOARCH=$(GOA

bash - 在 Go makefile 中使用 bash 命令

通过命令行(MacOS)使用gorun时,可以排除_test.go文件。gorun$(ls-1dir/*.go|grep-v_test.go)但是,似乎该命令并未通过Go生成文件以类似方式使用。例如,start:gorun$(ls-1dir/*.go|grep-v_test.go)和start:gorun`$(ls-1dir/\*.go|grep-v_test.go)`两者都会导致,gorun:nogofileslisted在Go生成文件中使用grep和类似命令的正确方法是什么? 最佳答案 美元符号对于make来说很特别:它们引入了

makefile - 如何理解这个 Go makefile?

COVERPROFILE=cover.outdefault:testcover:gotest-coverprofile=$(COVERPROFILE).gotoolcover-html=$(COVERPROFILE)rm$(COVERPROFILE)dependencies:goget-d.test:gotest-i./...gotest-v./....PHONY:coveragedependenciestest我不明白这个golangmakefile。有没有golangmakefiles的教程?我在谷歌上搜索了一下,没有找到完整的。例如,我没有看到任何关于什么是“封面”等的解释。

bash - makefile 中的 Make 规则总是成功

这是我的golang项目的makefile:.PHONY:killallrun:install./bin/chunkserver&;./bin/master&install:cleangoinstallgodfs/chunkservergodfs/masterclean:killallrm-fbin/masterbin/chunkserverkillall:kill-9$$(lsof-tbin/*2>/dev/null)2>/dev/null当我运行makeinstall时,它显示了这个错误:make:***[killall]Error2我需要返回一些代码来指示killall规则总是成

go - 为什么我的 Makefile 不在命令中插入表达式

我正在尝试编写一个super简单的Makefile来在Go项目中运行测试。该项目的依赖项已出售,但我想跳过这些测试。当从命令行运行它时,我只是做$gotest$(golist./...|grep-v/vendor/)然而,当我像这样将其放入Makefile时:test:gotest$(golist./...|grep-v/vendor/).PHONY:test表达式不会被计算:$makegotest?github.com/m90/some-repo[notestfiles]我如何让make以类似shell的方式插入表达式? 最佳答案

go - makefile 中的 protoc 以构建 protobuf

我已经像https://github.com/google/protobuf/blob/master/src/README.md上的教程一样安装了ProtocolBuffer之后我想构建protobuf并使用如下命令安装go库:goget-ugithub.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gatewaygoget-ugithub.com/grpc-ecosystem/grpc-gateway/protoc-gen-swaggergoget-ugithub.com/golang/protobuf/protoc-gen-goma