我已经搜索了emacs文档,cedet网站,并在这里徒劳无功.如果我的问题已经得到解答,可以自由地(指出现有答案)关闭它.
我正在尝试熟悉emacs中的EDE项目.到目前为止,我可以设置一个包含一个或多个文件的简单项目.
现在,我想分离一部分代码并将其打包到库中.基本上我正在努力实现与以下手写的天真Makefile相同的东西:
matrix:
g++ -c -o lib/libmatrix.o lib/matrix.cpp -std=c++0x
ar crf lib/libmatrix.a lib/libmatrix.o
num:
g++ num.cpp -Llib -Ilib -std=c++0x -o num -g
Run Code Online (Sandbox Code Playgroud)
这里我有一个由"lib/matrix.h"和"lib/matrix.cpp"组成的库(它是矩阵类型的玩具实现)和一个使用矩阵的文件"num.cpp".
我不知道如何告诉emacs正确编译矩阵.到目前为止,我得到了以下EDE项目,但当然它没有编译.
;; Object Numbers
;; EDE project file.
(ede-proj-project "Numbers"
:name "Numbers"
:file "Project.ede"
:targets (list
(ede-proj-target-makefile-program "num"
:name "num"
:path ""
:source '("num.cpp")
:compiler 'ede-g++-compiler
:linker 'ede-g++-linker
:configuration-variables 'nil
:ldflags '("-std=c++0x" "-Llib" "-Ilib")
:ldlibs '("matrix")
)
(ede-proj-target-makefile-archive "matrix"
:name "matrix"
:path "/lib"
:source '("matrix.cpp")
:compiler 'ede-g++-compiler
:linker 'ede-archive-linker
:configuration-variables 'nil
)
)
:configuration-variables 'nil
)
Run Code Online (Sandbox Code Playgroud)
所以,
我想我解决了。我自己回答这个问题,以防有人遇到同样的困难。
基本上我需要在目录“lib/”中定义一个子项目来编译和归档库。
我现在有以下文件
include/
matrix.h
lib/
Project.ede
matrix.cpp
Project.ede
num.cpp
Run Code Online (Sandbox Code Playgroud)
配置文件 lib/Project.ede 是负责该库的子项目,它看起来像这样:
;; Object matrix
;; EDE project file.
(ede-proj-project "matrix"
:name "matrix"
:file "Project.ede"
:targets (list
(ede-proj-target-makefile-archive "matrix"
:name "matrix"
:path ""
:source '("matrix.cpp")
:configuration-variables '(("debug" ("CPPFLAGS" . "-I../include -std=c++0x -g")) ("release" ("CPPFLAGS" . "-I../include -std=c++0x")))
)
)
)
Run Code Online (Sandbox Code Playgroud)
主文件 ./Project.ede 如下所示:
;; Object num
;; EDE project file.
(ede-proj-project "num"
:name "num"
:file "Project.ede"
:targets (list
(ede-proj-target-makefile-program "num"
:name "num"
:path ""
:source '("num.cpp")
:configuration-variables '(("debug" ("CPPFLAGS" . "-std=c++0x -Iinclude")) ("release" ("CPPFLAGS" . "-std=c++0x -Iinclude")))
:ldflags '("-Llib")
:ldlibs '("matrix")
)
)
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1491 次 |
| 最近记录: |