此Makefile将交叉编译和压缩Windows,Mac和Linux(ARM和x86)的可执行文件。
# Replace demo with your desired executable name appname := demo sources := $(wildcard *.go) build = GOOS=$(1) GOARCH=$(2) go build -o build/$(appname)$(3) tar = cd build && tar -cvzf $(1)_$(2).tar.gz $(appname)$(3) && rm $(appname)$(3) zip = cd build && zip $(1)_$(2).zip $(appname)$(3) && rm $(appname)$(3) .PHONY: all windows darwin linux clean all: windows darwin linux clean: rm -rf build/ ##### LINUX BUILDS ##### linux: build/linux_arm.tar.gz build/linux_arm64.tar.gz build/linux_386.tar.gz build/linux_amd64.tar.gz build/linux_386.tar.gz: $(sources) $(call build,linux,386,) $(call tar,linux,386) build/linux_amd64.tar.gz: $(sources) $(call build,linux,amd64,) $(call tar,linux,amd64) build/linux_arm.tar.gz: $(sources) $(call build,linux,arm,) $(call tar,linux,arm) build/linux_arm64.tar.gz: $(sources) $(call build,linux,arm64,) $(call tar,linux,arm64) ##### DARWIN (MAC) BUILDS ##### darwin: build/darwin_amd64.tar.gz build/darwin_amd64.tar.gz: $(sources) $(call build,darwin,amd64,) $(call tar,darwin,amd64) ##### WINDOWS BUILDS ##### windows: build/windows_386.zip build/windows_amd64.zip build/windows_386.zip: $(sources) $(call build,windows,386,.exe) $(call zip,windows,386,.exe) build/windows_amd64.zip: $(sources) $(call build,windows,amd64,.exe) $(call zip,windows,amd64,.exe)
(请注意,Makefile需要使用硬标签而不是空格)
问题内容: 我已经使用构建了一个简单的可执行程序。 我已经将代码编译成静态二进制程序。 我想反编译输出二进制文件并获取Go源代码。 这有可能吗? 问题答案: 没有工具可以执行此操作,并且由于Go程序已编译为机器代码,因此它们所包含的信息不足,无法将其转换回Go代码。但是,仍然可以使用标准拆卸技术。
上下文优先:我有一个头(event.h)、一个名为event.c的程序和主程序main.c。这个程序将被编译,首先生成一个目标程序(event.o),然后在一个单独的文件夹中生成一个静态库(libevent.a),然后生成可执行程序work1.exe 为此,我创建了这个Makefile: 执行makefile的结果会导致以下错误:
词法分析器 语法分析器 语义分析及中间代码生成 代码优化 代码生成
Java和Maven新手。 我试图配置我的应用程序,以便我可以通过cmd线生成一个jar,其中包含我所有的依赖项。 据我所知,我正在正确设置Pom以使用此插件:https://github.com/javafx-maven-plugin/javafx-maven-plugin 以下是我在Pom中的依赖项: 在我的
我得到的是: HelloWorld: inner.java 内部2.Java 现在我要做的是编译这个,这样我就可以运行了。 我可以用以下方法编译它: 但我想使用一个不需要列出每个子文件夹的通用命令。我该怎么做?
问题内容: 我试图写一个围棋包装用CGO的ENET。 当我尝试在Mac上编译包装程序时,该库较旧,并且界面略有不同。99%的代码是相同的,只需要更改几个C调用即可。 在Go中处理此类问题的最佳实践是什么? 有什么方法可以进行条件编译或条件导入吗? 问题答案: Go没有条件编译或条件导入。处理C代码中的类型差异。 [Go]作者是否反对预处理?