【发布时间】:2012-03-19 20:55:00
【问题描述】:
我正在尝试将带有空格的项目编译到路径目录中。 这里有我的 Makefile :
NAME = ./Release/Online_pricer
SRCS = ./Online_pricer/main.cpp \
./Online_pricer/Currency.cpp \
./Online_pricer/Curve.cpp \
./Online_pricer/Environment.cpp \
./Online_pricer/My_convert.cpp \
./Online_pricer/My_exception.cpp \
./Online_pricer/ParserTab.cpp \
./Online_pricer/Spot.cpp \
./Online_pricer/Volatility.cpp \
./Online_pricer/VolatilityCapFloor.cpp \
./Online_pricer/VolatilitySwaption.cpp \
../Files\\ cpp/Functions.cpp \
../Files\\ cpp/UtilitiesWeb.cpp
#####################################################
OBJS = $(SRCS:.cpp=.o)
CC = g++
RM = rm -f
CFLAGS = -g -W -Wall -Werror
INCL = ../Files\ .h/
#####################################################
$(NAME) : $(OBJS)
@$(CC) $(OBJS) -I$(INCL) $(LIB) -o $(NAME)
@printf "\n \033[33m[Message]\033[39m Compilation under Linux done\n"
.cpp.o :
@$(CC) -I$(INCL) $(CFLAGS) -c $< -o $@
@printf " \033[34m[Compilation]\033[39m %s\n" $<
re : fclean all
all : $(NAME)
clean :
@$(RM) *~ $(OBJS)
@printf " \033[31m[Delete] \033[39m%s\n" $(OBJS)
fclean : clean
@$(RM) $(NAME)
@printf "\n \033[31m[Delete] \033[39m%s\n" $(NAME)
当我启动“make re”时,我得到了这个结果:
make: *** No rule to make target `../Files\', needed by `Release/Online_pricer'. Stop.
我没有成功解决这个带有空格的目录的问题。目录名称为Files cpp。
谁能帮帮我?
编辑:我尝试使用一个\,但它不起作用。我有这个结果:
g++: error: ../Files: No such file or directory
g++: error: cpp/Functions.cpp: No such file or directory
g++: error: cpp/Functions.o: No such file or directory
g++: fatal error: no input files
compilation terminated.
make: *** [../Files cpp/Functions.o] Error 4
【问题讨论】:
-
问题是那里有双反斜杠。使用单个,所以只需 ../Files\ cpp/
-
尝试在文件后面只加一个反斜杠。
-
它不适用于一个`\`。我将结果加入了我的问题。
-
把文件放在双引号里怎么样?喜欢
"../Files cpp/Functions.cpp" -
与开始时相同的结果:
make: *** No rule to make target "../Files', needed by Release/Online_pricer'. Stop.
标签: c++ compilation makefile g++ gnu-make