使用库设置emacs EDE项目
Setting up an emacs EDE-project with libraries
我已经在SO上徒劳地搜索了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
在这里,我有一个由"lib/matrimatrix.h"answers"lib/metrimatrix.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
)
因此,
我想我解决了。我自己回答这个问题,以防有人遇到同样的困难。
基本上,我需要在目录"lib/"中定义一个子项目,用于编译和归档库。
我现在有以下文件
include/
matrix.h
lib/
Project.ede
matrix.cpp
Project.ede
num.cpp
配置文件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")))
)
)
)
主文件/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")
)
)
)
相关文章:
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 无法在 CLion 中构建 C++ 项目
- 运行同一解决方案的另一个项目的项目
- CMake-按正确顺序将项目与C运行时对象文件链接
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 欧拉项目#8答案是大以获得有效答案
- 从链接列表c++中删除一个项目
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 既然存在危险,为什么项目要使用-I include开关
- cmake在我的项目中所需的所有静态库都不成功
- QT通过C++添加映射QML项目
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 在linux上调试巨大的C++项目
- 在其他文件中创建类时在 c++ 项目中不起作用
- 使外部项目可用于find_package CMake
- 在子目录中使用target_sources()命令时用于单元测试(qtest)的项目结构
- 使用外部SDK工具链文件在VisualStudio上生成项目编译错误
- 使用 EDE 处理 emacs 中的 cmake/C++ 项目
- 如何为C++创建EDE项目
- 使用库设置emacs EDE项目