当我使用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
答案 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
参数实际上是无操作(但它们不会伤害任何东西)。