2011-06-25 6 views
5

emacsのドキュメント、cedetのWebサイト、ここではSOを無駄に検索しました。私の質問にすでに回答があった場合は、無料で(既存の回答を指摘して)それを閉じてください。ライブラリを使ってemacs EDEプロジェクトをセットアップする

私はemacsのEDEプロジェクトに慣れようとしています。これまでは、1つまたは複数のファイルで簡単なプロジェクトを設定することができます。

私はコードの一部を分離してライブラリにまとめたいと思います。私は、「LIB/matrix.h」と「LIB/matrix.cpp」からなるライブラリーを持っている

ここ
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 

:基本的に私は、私は、次の手で書かれたナイーブメイクファイルを取得、同じことを達成しようとしています(それは行列型のおもちゃの実装です)と行列を使うファイル "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 
) 

答えて

3

ので、

は、私はそれを解決したと思います。私は誰かが同じ困難につまずいた場合に備えて、自分自身で質問に答えています。

基本的には、ライブラリをコンパイルしてアーカイブするディレクトリ "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") 
    ) 
    ) 
) 
関連する問題