C++ 如果无需执行任何操作,请签入Makefie

C++ 如果无需执行任何操作,请签入Makefie,c++,makefile,C++,Makefile,我知道在Makefiles中这样做有点不寻常,但我真的很想这样做。我想这样做,如果我运行Makefile,它会打开程序(已经完成),但是如果没有什么要做的,它也会运行:/。我该怎么做 生成文件= #Compiler to use CC = g++ #LUA STUFF LUAHOME = /usr/local/Cellar/lua/5.3.2/src #Boost Paths BOOST_LIB = /usr/local/Cellar/boost/1.59.0/lib BOOST_INCLU

我知道在Makefiles中这样做有点不寻常,但我真的很想这样做。我想这样做,如果我运行Makefile,它会打开程序(已经完成),但是如果没有什么要做的,它也会运行:/。我该怎么做

生成文件=

#Compiler to use
CC = g++

#LUA STUFF
LUAHOME = /usr/local/Cellar/lua/5.3.2/src

#Boost Paths
BOOST_LIB = /usr/local/Cellar/boost/1.59.0/lib
BOOST_INCLUDE = /usr/local/Cellar/boost/1.59.0/include

#Steam Paths
STEAM_LIB = libs/steam/redistributable_bin/osx32
STEAM_INCLUDE = libs/steam/public/steam 

#Flags for the compiler
LFLAGS = -L$(LUAHOME) -I$(LUAHOME) -llua -L$(STEAM_LIB) -I$(STEAM_INCLUDE) -L$(BOOST_LIB) -I$(BOOST_INCLUDE) -lboost_system -lboost_filesystem -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo -lglew -lglfw3 -w -o Relieved
OFLAGS = -c -Wall

#Name of the Compiled Program
NAME = Relieved

#All CPPs
CPP = main.cpp jelly/lua_manager.cpp jelly/keysManager.cpp 

#Objects
OBJECTS = $(CPP:.cpp=.o)

all: $(CPP) $(NAME)

$(NAME): $(OBJECTS)
    $(CC) $(LFLAGS) $(OBJECTS) -o $@

    ./$(NAME)

.cpp.o:
    $(CC) $(OFLAGS) $< -o $@

clean:
    rm $(OBJECTS) $(NAME)
#要使用的编译器
CC=g++
#卢阿的东西
LUAHOME=/usr/local/ceral/lua/5.3.2/src
#升压路径
BOOST_LIB=/usr/local/cillar/BOOST/1.59.0/LIB
BOOST_INCLUDE=/usr/local/ceral/BOOST/1.59.0/INCLUDE
#蒸汽通道
STEAM_LIB=libs/蒸汽/可再分配_bin/osx32
STEAM_INCLUDE=图书馆/蒸汽/公共/蒸汽
#编译器的标志
LFLAGS=-L$(LUAHOME)-I$(LUAHOME)-llua-L$(STEAM_LIB)-I$(STEAM_INCLUDE)-L$(BOOST_LIB)-I$(BOOST_INCLUDE)-lboost_系统-lboost_文件系统-framework OpenGL-framework Cocoa-framework IOKit-framework corevide-lglew-o
OFLAGS=-c-墙
#已编译程序的名称
姓名=宽慰
#所有CPP
CPP=main.CPP jelly/lua_manager.CPP jelly/keysManager.CPP
#物体
对象=$(CPP:.CPP=.o)
全部:$(CPP)$(名称)
$(名称):$(对象)
$(CC)$(LFLAGS)$(对象)-o$@
./$(姓名)
.cpp.o:
$(CC)$(OFLAGS)$<-o$@
清洁:
rm$(对象)$(名称)

你的做法有些错误。如果没有什么可以做,那么什么也不会做

将运行程序的命令放在二进制文件的构建配方中没有帮助

您的目标是创建一个始终需要构建的目标,并将run命令放在那里。虽然您可以使用任何不存在的文件,但关键字
PHONY
使此类伪目标更有效,因为这样make甚至不必检查文件是否存在

all: RUN-IT

.PHONY: RUN-IT

RUN-IT : $(NAME)
# run the program here, remember to use TABs when defining build steps