我正在学习c / c ++项目的cedet。但是,我在Make项目中遇到了困难。
说我有一个文件 看起来像这样的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
,然后使用ede-new-target
添加目标 main ,并将main.cpp添加到main。
然后我写 temp.h 和 temp.cpp 并将 temp.cpp 添加到目标temp。
我选择所有目标作为生成此 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
make然后失败,因为生成的Makefile没有识别main.cpp对temp.cpp的依赖性。我怎样才能告诉cedet EDE 来识别这种依赖?我在这里做的有什么问题?
其次,我如何告诉它我不想要main.o,因为这是最终目标程序/可执行文件,而不是目标文件。
答案 0 :(得分:0)
对于您的示例,创建的Makefile
应该同时创建main.o
和main
。您创建的目标的名称应该是您的程序的名称,因此如果您将名为“main”的目标更改为“Pickle”,它将创建一个main.o和一个Pickle程序。
编辑temp.cpp时,如果选择重命名目标,则应将其添加到main或Pickle。将程序的所有源文件放入单个目标中,除非您选择创建库,在这种情况下,将temp添加到库类型目标。
要“修复问题”,您可以使用customize-project
命令访问Emacs中通过简单命令通常无法获得的所有其他选项。这将允许您添加库的依赖项,添加标题作为辅助src,以及其他有用的东西。只需阅读与不同选项相关联的文档字符串。
EDE的快速入门可以是found here。