2017-07-28 75 views
1

我有一个远程交叉构建,我想手动从makefile构建中获取gcc命令行,并使用它来设置包含路径和预处理器的Eclipse CDT项目文件定义。我怎样才能做到这一点?将gcc命令行转换为Eclipse CDT项目文件

+0

我会亲自编写一个快速cmake输入文件,并生成Eclipse CDT项目文件。 – malat

+1

看看https://help.eclipse.org/oxygen/topic/org.eclipse.cdt.doc.user/tasks/cdt_t_sd.htm –

回答

2

通常的做法是使用构建输出解析器

  • 创建一个Makefile项目
  • 启用Project Properties | C/C++ General | Preprocessor Include Paths, Macros etc. | Providers tab构建输出分析器(中可能已经启用)。

    • 配置,如果有必要(例如“编译器命令模式”可能需要进行调整,以符合您的交叉编译器的名字。)
  • 确保你可以在Eclipse中生成项目。如有必要,请在Project Properties | C/C++ Build中配置make目标名称和调用目录。

  • 从Eclipse中调用构建。

    • Build Output Parser将在构建结束时自动运行,在构建输出中解析编译器命令,并根据命令配置项目的包含路径和预处理器定义。

注:这个工作,构建输出需要实际包含原始编译器的命令。有时,例如使用CMake生成的makefiles,它不会默认,但有一个选项可以启用它 - 如果是这样,请确保在Project Properties | C/C++Build中指定的“生成命令”包含该选项。

+0

Thanks HighCommand - 这确实是一个正确的方式来做到这一点本地建立。在我的情况下,我通过ssh在不同的机器上远程构建,因此Eclipse中使用的路径与构建输出中显示的路径具有不同的前缀。构建输出解析器可以处理这个问题吗?有没有一种方法可以将单个gcc命令行剪切并粘贴到构建输出解析器中并让它设置包含并定义? – Simon

+1

@Simon文件的路径并不重要,但构建输出解析器识别编译器命令很重要。能够自定义“编译器命令模式”应该有所帮助。 – HighCommander4

+1

@Simon你可以写一个虚拟的makefile来回应相关的命令行。 – HighCommander4