【发布时间】:2009-07-01 18:36:34
【问题描述】:
我有一个用于 Eclipse 的 c++ Makefileproject,如果我构建它,二进制文件位于项目根目录中。如何将构建目录更改为 {ROOT}/bin?
我尝试了项目属性 -> c/c++ 构建 -> 构建位置(构建目录:MY PATH) 但它根本无法编译。
【问题讨论】:
我有一个用于 Eclipse 的 c++ Makefileproject,如果我构建它,二进制文件位于项目根目录中。如何将构建目录更改为 {ROOT}/bin?
我尝试了项目属性 -> c/c++ 构建 -> 构建位置(构建目录:MY PATH) 但它根本无法编译。
【问题讨论】:
您使用 Makefile 项目。所有必须做的事情,包括将可执行文件放在哪里,都必须由您编码到 Makefile 中! Eclipse 只是通过调用 make 来启动构建。
一个简单的例子:
CXXFLAGS= -g -O0
CXX=g++
all: bin bin/test
bin/test: bin/test.o
$(CXX) -o bin/test bin/test.o
bin/test.o: test.cpp
$(CXX) $(CXXFLAGS) -o bin/test.o -c test.cpp
bin:
mkdir bin
clean:
rm bin/test.o
rm bin/test
这是我学习如何编写 Makefile 的来源:http://www.eng.hawaii.edu/Tutor/Make
Plain Makefiles 对于文件数量较少的项目非常方便。一旦由于缺少重新编译(忘记在 .o: 依赖项中列出头文件)而被段错误所困扰,您应该继续使用完整的构建系统,例如 cmake。 cmake 为您生成 Makefile,但了解 Makfile 的基础知识以解释错误消息很重要。
【讨论】: