【发布时间】:2019-03-21 09:51:22
【问题描述】:
我正在努力寻找一种方法,以便我的Makefile 在构建它之后执行cmd 中的构建代码我正在使用Sublime Text 3,并且我正在尝试构建一个带有外部标头的c++ 文件。
这是我得到的(它在 sublimetext“buildingresult”控制台中显示初始菜单):
function1 = Aleatori
main = main
language = g++
flags = -c
all: compile run
compile: main.o Aleatori.o #function2.o-
$(language) $(main).o $(function1).o -o $(function1).exe
main.o: $(main).cpp
$(language) $(flags) $(main).cpp
Aleatori.o: $(function1).cpp
$(language) $(flags) $(function1).cpp
.PHONY: clean
clean:
rm -f *.obj
.PHONY: run
run:
./$(function1)
如前所述,它只是输出程序的初始菜单,我无法与之交互。
g++ main.o Aleatori.o -o Aleatori.exe
./Aleatori
Benvingut al Brain Training Game! Si us plau, selecciona una dificultat:
1 - Facil
2 - Mig
3 - Dificil
感谢您的关注。 :)
【问题讨论】:
-
拥有像
compile:这样的目标是不寻常的。通常我希望该目标是$(function1).exe:。 -
如果程序生成了一个可运行的可执行文件,makefile 通常会完成它的工作。是否考虑过源代码有错误的可能性?
-
让我解释一下,这个makefile构建的程序没有问题,它运行完美,但我希望makefile在构建后运行它。
-
您在 Windows 上吗?您的 makefile 正在创建文件
Aleatori.exe,但您的run目标正在调用程序Aleatori。如果您在 Windows 上可能会工作(尽管这是不好的做法),但如果您在任何 POSIX 系统上,这些文件就不一样了。 -
另外,请告诉我们您是如何调用
make(您使用的完整命令行)
标签: c++ makefile sublimetext3