2010-12-06 20 views
11

Ben yeni biriyim ve bir sorunum var! Bir C++ kodu ile çalışıyorum ve nasıl içe aktarılacağını ve nasıl eklüzeyler üzerine derleneceğini bilmiyorum (komut satırından derledim). kod belirli bir yapıya sahiptir ve bu şekilde düzenlenmiştir:Eclipse C++ Varolan makefile ile nasıl çalışılır

repos____lib____configure (execute the configure file inside the libraries folders) 
        I   I___makefile (execute the make file inside the libraries folders, 
                 requires make/make.def) 
     I   I___ib1____.cpp 
     I   I   I____.h 
     I   ...   I____configure (it requires make/configure_lib and 
                   make/configure_includes 
     I   ...   I____makefile (generated by configure) 
     I   I___lib2___.... 
     i   I___....... 
     I   I___libn____.cpp 
     i      I____.h 
     i      I____configure 
     i      I____makefile (generated by configure) 
     I 
     I___make(folder)__bashrc (are set the some environment variables) 
     I        I__configure_bin 
     I        I__configure_includes 
     I        I__configure_lib 
     I        I__make.def (are set all the include path and library path used 
     I               in the configure file) 
     I___application__main.cpp 
            I__configure 
            I__makefile(generated by the configure file) 

... sen benim sorunu anlamak emin olmak için (... emin :))

ilk yapılandırmak dosyasıdır :

cd lib1; ./configure 
cd ../lib2; ./configure 
..... 
.... 
cd ../libn; ./configure 
cd 

ve ilk makefile bu makefile olan

include /media/Dati/WORKHOME/repos/make/make.def 

olduğunu Bütün kütüphaneye

lib: 
    make -C lib1 
    make -C lib2 
    make -C libn 

için yapılandırmak dosyası (Lib1 içindeki bir) bir örnek:

#!/usr/bin/perl 

$INC = '$(OPENCVINC) $(FLTKINC) $(DC1394V2INC)'; ##<-DEFINED IN /make.def 
$LIB = '$(OPENCVLIB) $(FLTKLIB) $(DC1394V2LIB)';  ##################### 

#------------------------------------------------------------------------------- 

require '/media/Dati/WORKHOME/repos/make/configure_lib'; 
print "Created Makefile.\n"; 

# this will create a include file for the whole directory, 
# using the template <dirname>.h.templ 
require '/media/Dati/WORKHOME/repos/make/configure_includes'; 
print "Created $libname.h\n"; 

Tutulma olmadan derlemek lib klasöründe basit

  1. tip /.configure olduğunu
  2. tip
  3. Uygulama klasörüne gidin
  4. tip hale ./configure
  5. tip

benim sorum Tutulma .... olan programı çalıştırmak ??? Üçünü, varolan kodu makefile projesi olarak al/içe aktarıyorum ancak şimdi nasıl derleyeceğimi bilmiyorum. Lütfen bana yardım edebilir misiniz? bu önemli!

Sen "makefile projesi olarak ithal mevcut kodu" kullanarak doğru olanı yapmış

+4

1 6 rep ile bir kişi için ve soru sordu. (: –

+0

@Kiril: Katılıyorum – neuro

cevap

1

gabriele çok teşekkür ederim. Şimdi eclipse makefile yapmak ve kullanmak gerektiğini bilmeli. Ancak inşa süreciniz sadece make tarafından değil.

Tek çözüm, tüm oluşturma adımlarınızı çağıran makefile yazmaktır. Bir şey gibi:

all: 
    cd dir1 && ./configure && make 
    cd dir2 && ./configure && make 
    etc. 

my2c

Düzenleme: iyi biçimli için

üzgün

Şu anda hiçbir Tutulma yüklü, bu yüzden adımları ayrıntılandırılacaktır gönderemez ...

+0

@gabriele: Doğru yol.Yüksek yazılı soruları ve cevapları vurgulayan StackOverflow diğer forumdan farklı.İsterseniz soru/cevaplar üzerine yorum yapmak ve gerekirse bunları düzenlemek. Çok iyi yorum ve cevap/cevaplarla değil, iyi yazılmış ve doğru cevaplarla sonuçlanırsınız ... – neuro