【发布时间】:2009-08-14 12:52:39
【问题描述】:
这是我的两个问题:
-
我现在正在学习使用 CVS 管理我的代码,我只想为我的 C++ 文件、Makefile 和 bash 以及 python 脚本创建一个存储库,而不是目标文件和可执行文件。所以我在我的项目目录下做了几个子目录:src、bin、scripts、results和data。
我将 C++ 文件和 Makefile 放在 ~/myproject/src 下,将 Bash 和 Python 脚本放在 ~/myproject/scripts 下,将对象和可执行文件放在 ~/myproject/bin 下。我希望只有 src 和脚本下的文件将通过 CVS 更新。我想知道你是如何组织你的项目的?只是希望养成一些好习惯。
-
由于我将 C++ 文件和 Makefile 放入 ~/myproject/src 并将对象和可执行文件放入 ~/myproject/bin,因此我必须在 Makefile 中指定目录。这就是我正在做的事情
生成文件:
...
BIN_DIR=/home/myproject/bin/
all: $(BIN_DIR)myexecutable TAGS
TAGS: *.cc *.h
etags --members --declarations -l c++ *.cc *.h
$(BIN_DIR)myexecutable: $(BIN_DIR)myobject.o
$(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
Makefile.depend: *.h *.cc Makefile
$(CXX) -M $(CXXFLAGS) *.cc > Makefile.depend
clean:
\rm -f $(BIN_DIR)myexecutable $(BIN_DIR)*.o Makefile.depend TAGS`
但是这会报错
make: *** 没有规则来制作目标
/home/myproject/bin/myobject.o', needed by/home/myproject/bin/myexecutable'。
如何在 Makefile 中为对象和可执行文件指定与 C++ 文件不同的目录?
【问题讨论】:
-
请将 Makefile 中的摘录缩进四个空格。这将为它提供正确的格式和语法突出显示。
-
似乎某处有一个错误阻止将代码放在列表之后。我添加了“Makefile:”作为解决方法。
标签: c++ project-management makefile cvs