2011-06-25 18 views
5

Emacs belgelerini, cedet web sitesini ve burada SO üzerinde boş yere aradım. Soruma zaten cevap verildiyse, (mevcut bir cevaba işaret ederek) kapatacak kadar düştü.Bir emacs ayarlanması EDE-projesi kütüphanelerle birlikte

Kendimi EAC projeleriyle taklit etme konusunda çalışıyorum. Şimdiye kadar bir veya daha fazla dosya ile basit bir proje kurabilirim.

Şimdi kodumun bir bölümünü ayırıp bir kitaplığa paketlemek istiyorum. Temelde ben şu elle yazılmış naif Makefile ile olsun aynı şeyi başarmak için çalışıyorum:

İşte
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 

ben "lib/matrix.h" ve "lib/matrix.cpp" oluşan bir kütüphane var (matris tipi bir oyuncak uygulamasıdır) ve matrisi kullanan bir "num.cpp" dosyası.

Matrisleri düzgün bir şekilde derlemek için nasıl emacs söyleyeceğimi bilmiyorum. Şimdiye kadar aşağıdaki EDE projesini aldım, ama elbette derleme değil.

;; 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 
) 

cevap

3

Yani,

i bunu çözdük. Birinin aynı sıkıntılarla karşılaşması durumunda soruyu kendim yanıtlıyorum. Temel olarak, kütüphaneyi derleyen ve arşivleyen "lib /" dizininde bir alt proje tanımlamam gerekiyordu.

Şimdi aşağıdaki dosyaları

include/ 
    matrix.h 
lib/ 
    Project.ede 
    matrix.cpp 
Project.ede 
num.cpp 

yapılandırma dosyası lib var/Project.ede kütüphanesinde sorumlu alt proje olduğunu ve şu şekilde görünür:

;; 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"))) 
    ) 
    ) 
) 

ana dosyası. /Project.ede şöyle görünür:

;; 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") 
    ) 
    ) 
)