2016-04-08 34 views
-1

yapmak kullanarak Raspberry Pi üzerinde derleniyor, hata böyle olur: "bmp180.c :(metin + 0xe8):.` Bcm2835_i2c_write 'olarak tanımlanmamış başvuru"Ben Raspberry Pi kaynak kodunu derlemek için yapmak kullandığınızda

#makefile 

bmp: main.o bmp180.o 
    gcc -o bmp main.o bmp180.o 

main.o: main.c bmp180.h 
    gcc -c main.c -l bcm2835.h 

bmp180.o: bmp180.c bmp180.h 
    gcc -c bmp180.c -l bcm2835.h 


clear: 
    rm -f main.o bmp180.o  
+1

'-l bcm2835.h 'yanlıştır, -l, kütüphaneyi" .h "dosyaları üstbilgi dosyaları iken bağlantılandırılır. -l bcm2835'i deneyin –

+0

Teşekkürler, işe yarıyor. ".h" dosyası, dinamik paylaşılan kitaplıklar değil. – Douzi

cevap

0

Sen Makefiledaki -l bcm2835.h vardır: Ancak, ben "-l bcm2835", aşağıdaki gibi makefile kullandık. Kütüphanenin adı sadece bcm2835'dur. .h ile biten dosyalar C kaynağınızda #include 'd olması anlamına gelir; dinamik paylaşımlı kütüphaneler değiller. Ayrıca, paylaşılan kütüphaneler bağlantı aşamada gerekli olan

değil sahne derlemek; Eğer bağlama aşamasına -l bcm2835 eklemek gerekir: sizin derleme adımda

bmp: main.o bmp180.o 
    gcc -o bmp main.o bmp180.o -l bcm2835 

-l argümanlar etkili bir no-op (ama hiçbir şey zarar vermez).

+0

Çok teşekkürler. İşe yarıyor. anahtar nedenin dediğiniz şeydir, ".h" dosyası dinamik paylaşımlı kütüphaneler değildir. – Douzi

İlgili konular