2012-02-07 55 views
4

尝试了解EDE如何工作,通过使用它为 生成Makefile以创建包含特定 层次结构下多个目标的项目目录。我没有任何运气,信息页似乎并没有 回答我的问题。Emacs CEDET EDE非平凡项目设置

我的目录结构看起来像: (星号(*)标记包含的main()函数的文件)

research/ 
    flow/ 
    flow.cpp 
    flow.hpp 
    program.cpp * 

    samples/ 
    sample1.yuv 

    utils/ 
    yuvreader.cpp 
    yuvreader.hpp 

    tests/ 
    yuvreader_test.cpp * 

我想有一个或多个子项目创建EDE项目(S);或者我可能只想要一个或多个目标......?

flow的program.cpp需要flow /和utils/sources,但是yuvreader_test 只需要utils/sources。

我在根目录和所有子目录中都做了ede-new。我也在根目录中做了ede-new-target,但是当在子目录中添加源文件时,它不能识别我创建的目标。

我将不胜感激,如果有人可以指向我一些更复杂的 Project.ede文件,我想要做的事情。你可以猜到 ,我有更多的子目录包含类代码文件,其中一些 有独立的程序使用该代码;我还有更多的测试代码 /。任何示例文件/命令工作流程将被 赞赏。

回答

2

生成Makefile或Automakefiles的EDE功能比Make或Automake有更多的约束。例如,属于目标的文件必须与包含目标的项目位于同一目录中。在你的例子中,你的根目录中可能没有项目。

为了使多个源在一起成为一个单独的程序,一个简单的机制是使每个子目录创建一个归档(.a)或共享库(。所以),其在程序链接在一起。

如果这太过于束缚,您也可以编写自己的automake文件,EDE将直接读取这些文件,以便根据需要进行更复杂的构建过程。

的CEDET分配使用EDE作为其构建过程,所以你可以看到,作为一个复杂的例子。它不会生成C++文件,所以它可能没有你想要的那么有用。

+0

不幸的是,我认为这是事实。感谢您的解释;尽管我不愿意,但我会接受这个答案。我希望看到顶层结构的类型实现到EDE的未来 - 节省了我的时间从编写CMakeLists或automake的文件等 – assem 2012-02-09 05:00:10

+1

由于最近的类似EDE项目大量涌入的问题,我创建了一个快速入门节描述具有包含目录和共享库的基本项目的手册。自动生成的版本在这里:http://www.randomsample.de/cedetdocs/ede/ede/Quick-Start.html – Eric 2012-02-24 04:58:53