【问题标题】:How can I define custom build command instead of "make all" in a C++ Eclipse projects?如何在 C++ Eclipse 项目中定义自定义构建命令而不是“make all”?
【发布时间】:2015-01-28 11:48:28
【问题描述】:

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

【问题讨论】:

    标签: eclipse makefile eclipse-cdt


    【解决方案1】:

    URaoul 的回答帮助我找到了另一个答案。 (更新:后来我意识到比我更正确的答案是使用“构建配置”)

    有一个菜单命令“制作目标”。您可以在菜单中找到它: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,它有一个默认命令:

    【讨论】:

    • 嘿,这就像一个魅力!非常感谢!你知道我如何在 eclipse cdt 中运行它吗……我可以使用./project args 从命令行执行,但不知道如何从 eclipse cdt 执行它……我在.cc 文件。我单击运行按钮,它只构建项目。谢谢。
    【解决方案2】:

    来自http://help.eclipse.org/luna/topic/org.eclipse.cdt.doc.user/getting_started/cdt_w_import.htm?cp=10_1_3

    打开项目属性(在“项目资源管理器”视图中的项目名称上用鼠标右键选择上下文菜单底部的“属性”)。

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

    【讨论】:

      【解决方案3】:

      在任何项目中,您通常都有主文件“makefile”。您必须编辑此文件。

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

      all: #usually with dependencies.
      

      这是一个 make 规则,要自己制作,只需以相同的方式添加即可:

      test: #some command or dependency.
      

      然后,当您进行 make test 时,它会按照您的要求执行。

      查看更多示例并更好地理解 makefile 规则。
      GNU Make

      如果你还没有看到的话,这里有一些用于在 eclipse 中创建新文件的东西。
      makefile in Eclipse

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-05-23
          • 2018-03-28
          • 1970-01-01
          • 1970-01-01
          • 2021-08-11
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多