如何在 C++ Eclipse 项目中定义自定义构建命令而不是 "make all"?
How can I define custom build command instead of "make all" in a C++ Eclipse projects?
我将现有的 make 文件项目导入到 eclipse 中。我想用自定义 make 参数而不是像 make test
这样的 make all
来编译代码。如何将这些不同的 make 调用添加到 Eclipse Luna 中的项目?
在任何项目中,您通常都有主文件 "makefile." 您必须编辑此文件。
如果您查看主生成文件,您会发现类似这样的内容:
all: #usually with dependencies.
这是一个制作规则,要制作自己的规则,只需按相同的方式添加即可:
test: #some command or dependency.
然后当你做测试时,它会按照你的要求去做。
查看更多示例并更好地理解 makefile 规则。
GNU Make
这里有一些在 eclipse 中制作新文件的东西,如果你还没有看过的话。
makefile in Eclipse
您可以创建一个外部工具来运行您能想到的任何命令行命令。只需单击 图标附近的箭头和 select "External Tools Configurations"。
打开项目属性(右键单击项目资源管理器视图中的项目名称,然后在上下文菜单底部的 select 属性上)。
在 C/C++ 构建页面的构建器设置选项卡上,取消选中使用默认构建命令并将 make 命令更改为 make -f hello.mak 或您需要的任何命令。
URaoul 的回答帮助我找到了另一个答案。 (更新: 后来发现比我的答案更正确的是"Build Configurations")
有一个菜单命令"Make Targets"。您可以在菜单中找到它:Project/Make Targes
。或者您只需按 "Shift-F9".
因此您需要创建一个或几个目标。所以对于我的 makefile:
.PHONY: all test autotest
all: program
program: main.o
$(CXX) $(LDFLAGS) -o $@ $^
test:
./program
autotest:
echo "Autotests"
./program
echo "Autotests completed"
clean:
rm *.o program
我在 "Make target" 中创建了三个目标:
其中一个是 "run my autotests",它有一个自定义构建命令:
其中一个是all,它有一个默认命令:
我将现有的 make 文件项目导入到 eclipse 中。我想用自定义 make 参数而不是像 make test
这样的 make all
来编译代码。如何将这些不同的 make 调用添加到 Eclipse Luna 中的项目?
在任何项目中,您通常都有主文件 "makefile." 您必须编辑此文件。
如果您查看主生成文件,您会发现类似这样的内容:
all: #usually with dependencies.
这是一个制作规则,要制作自己的规则,只需按相同的方式添加即可:
test: #some command or dependency.
然后当你做测试时,它会按照你的要求去做。
查看更多示例并更好地理解 makefile 规则。
GNU Make
这里有一些在 eclipse 中制作新文件的东西,如果你还没有看过的话。
makefile in Eclipse
您可以创建一个外部工具来运行您能想到的任何命令行命令。只需单击
打开项目属性(右键单击项目资源管理器视图中的项目名称,然后在上下文菜单底部的 select 属性上)。
在 C/C++ 构建页面的构建器设置选项卡上,取消选中使用默认构建命令并将 make 命令更改为 make -f hello.mak 或您需要的任何命令。
URaoul 的回答帮助我找到了另一个答案。 (更新: 后来发现比我的答案更正确的是"Build Configurations")
有一个菜单命令"Make Targets"。您可以在菜单中找到它:Project/Make Targes
。或者您只需按 "Shift-F9".
因此您需要创建一个或几个目标。所以对于我的 makefile:
.PHONY: all test autotest
all: program
program: main.o
$(CXX) $(LDFLAGS) -o $@ $^
test:
./program
autotest:
echo "Autotests"
./program
echo "Autotests completed"
clean:
rm *.o program
我在 "Make target" 中创建了三个目标:
其中一个是 "run my autotests",它有一个自定义构建命令:
其中一个是all,它有一个默认命令: