1

我正在为我的 c/c++ 项目学习 cedet。但是,我在制作项目时遇到了困难。

假设我有一个看起来像这样的文件 main.cpp

//main.cpp
#include "temp.h"
blah... <c++ code>

我有 temp.h 和 temp.cpp

看起来像这样

//temp.h
some declarations

//temp.cpp
some definitions

然后在 emacs+cedet 中,我这样做ede-new,然后我添加一个目标main使用ede-new-target并将 main.cpp 添加到 main。

然后我写temp.htemp.cpp并将temp.cpp添加到目标温度。

我选择所有目标作为生成此Project.ede文件的程序

;; Object Test
;; EDE project file.
(ede-proj-project "Test"
  :name "Test"
  :file "Project.ede"
  :targets (list 
   (ede-proj-target-makefile-program "main"
    :name "main"
    :path ""
    :source '("main.cpp")
    )
   (ede-proj-target-makefile-program "temp"
    :name "temp"
    :path ""
    :source '("temp.cpp")
    )
   )
  )

现在,当我使用 ede-proj-regenerate 生成 makefile 时,它​​会创建一个生成 main.o 和 temp.o 的 Makefile

但是,由于生成的 Makefile 无法识别 main.cpp 对 temp.cpp 的依赖关系,因此 make 失败。我如何告诉 cedet EDE来识别这种依赖关系?我在这里做的有什么问题?

其次,我如何告诉它我不想要 main.o,因为这是最终的目标程序/可执行文件,而不是目标文件。

4

1 回答 1

0

对于您的示例, createdMakefile应该同时创建main.o, 和main. 您创建的目标名称应该是您的程序的名称,因此如果您将名为“main”的目标更改为“Pickle”,它将创建一个 main.o 和一个 Pickle 程序。

编辑 temp.cpp 时,应将其添加到 main 或 Pickle(如果您选择重命名目标)。将程序的所有源文件放入单个目标中,除非您选择创建库,在这种情况下,将 temp 添加到库类型目标中。

要“修复问题”,您可以使用该customize-project命令访问通常无法通过 Emacs 中的简单命令获得的所有其他选项。这将允许您添加对库的依赖项,将您的标头添加为 aux src,以及其他有用的东西。只需阅读与不同选项相关的文档字符串。

可以在此处找到EDE 的快速入门。

于 2012-01-18T02:59:48.397 回答