使用make在RaspberryPi上编译

时间:2016-04-08 21:07:47

标签: c makefile raspberry-pi2

当我使用make编译RaspberryPi的源代码时,错误发生如下: " bmp180.c :(。text + 0xe8):未定义引用`bcm2835_i2c_write'"

但是,我使用了" -l bcm2835",makefile如下:

#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 个答案:

答案 0 :(得分:0)

您的Makefile中有-l bcm2835.h。该库的名称只是bcm2835。以.h结尾的文件是C源代码中的文件#include';它们不是动态共享库。

此外, link 阶段需要共享库,而不是 compile 阶段;您需要将-l bcm2835添加到链接步骤:

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

编译步骤中的-l参数实际上是无操作(但它们不会伤害任何东西)。