Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C++ Eclipse项目中,如何定义自定义生成命令而不是“使全部”?_Eclipse_Makefile_Eclipse Cdt - Fatal编程技术网

在C++ Eclipse项目中,如何定义自定义生成命令而不是“使全部”?

在C++ Eclipse项目中,如何定义自定义生成命令而不是“使全部”?,eclipse,makefile,eclipse-cdt,Eclipse,Makefile,Eclipse Cdt,我将一个现有的make文件项目导入eclipse。我想用一个自定义make参数来编译代码,而不是像make-all-like-make-test那样编译代码。如何在EclipseLuna中将这些不同的make调用添加到project中?在您拥有主文件(通常是makefile)的任何项目中。您必须编辑此文件 如果查看主makefile,您会发现如下内容: all: #usually with dependencies. 这是一条制定规则,要制定自己的规则,只需以相同的方式添加: test: #s

我将一个现有的make文件项目导入eclipse。我想用一个自定义make参数来编译代码,而不是像make-all-like-make-test那样编译代码。如何在EclipseLuna中将这些不同的make调用添加到project中?

在您拥有主文件(通常是makefile)的任何项目中。您必须编辑此文件

如果查看主makefile,您会发现如下内容:

all: #usually with dependencies.
这是一条制定规则,要制定自己的规则,只需以相同的方式添加:

test: #some command or dependency.
然后,当您进行测试时,它将执行您要求它执行的操作

查看本文,了解更多示例和对makefile规则的更好理解。

如果您还没有看到,这里有一些在eclipse中创建新文件的东西。

您可以创建一个外部工具,它可以运行您想到的任何命令行命令。只需单击图标附近的箭头并选择外部工具配置。

在“项目资源管理器”视图中的“项目名称”上打开“项目属性”,然后在关联菜单底部选择“属性”


在C/C++构建页面的生成器设置选项卡上,取消选中使用默认构建命令,并将makecommand更改为make-f hello.mak或任何您需要的命令

乌拉尔的回答帮助我找到了另一个答案。更新:后来我意识到比我更正确的答案是使用构建配置

有一个菜单命令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中创建了三个目标:

其中一个是“运行我的自动测试”,它有一个自定义生成命令:

其中一个是all,它有一个默认命令:

嘿,这很有魅力!谢谢!你知道我如何在EclipseCDT中运行它吗。。。我可以使用./project args从命令行执行,但不知道如何从eclipse cdt执行。。。我在.cc文件中有一个主函数。我单击run按钮,它只生成项目。非常感谢。