使用 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
参数实际上是空操作(但它们不会造成任何伤害)。
我用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
参数实际上是空操作(但它们不会造成任何伤害)。