使用 make 在 RaspberryPi 上编译

Compiling on RaspberryPi by using make

我用make编译RaspberryPi的源代码时,出现如下错误: "bmp180.c:(.text+0xe8): undefined reference to `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       

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

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

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

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