已安装BCM2835,但提供未定义的引用

已安装BCM2835,但提供未定义的引用,c,linux,C,Linux,所以我安装了,但是当我试图编译一个带有“gcc-cmain.c”的.c文件时,它给出了以下错误。顺便说一句,我不知道如何编译linux,只需在互联网上学习 /tmp/ccSVwHkt.o: In function `main': main.c:(.text+0x14): undefined reference to `bcm2835_init' main.c:(.text+0x3c): undefined reference to `bcm2835_gpio_fsel' main.c:(.tex

所以我安装了,但是当我试图编译一个带有“gcc-cmain.c”的.c文件时,它给出了以下错误。顺便说一句,我不知道如何编译linux,只需在互联网上学习

/tmp/ccSVwHkt.o: In function `main':
main.c:(.text+0x14): undefined reference to `bcm2835_init'
main.c:(.text+0x3c): undefined reference to `bcm2835_gpio_fsel'
main.c:(.text+0x48): undefined reference to `bcm2835_gpio_write'
main.c:(.text+0x50): undefined reference to `bcm2835_delay'
main.c:(.text+0x5c): undefined reference to `bcm2835_gpio_write'
main.c:(.text+0x64): undefined reference to `bcm2835_delay'
collect2: ld returned 1 exit status
这是main.c的内容(从Google代码复制)

/*
*main.c
*
*创建日期:2013年6月23日
*作者:安德烈亚斯·巴克斯
*/
#包括
//RPi插头P1针脚11(即GPIO针脚17)闪烁
#定义引脚RPI\U GPIO\U P1\U 11
int main(int argc,字符**argv)
{
//如果调用此命令,它将不会实际访问GPIO
//用于测试
//bcm2835_设置_调试(1);
如果(!bcm2835_init())
返回1;
//将引脚设置为输出
bcm2835_gpio_fsel(引脚,bcm2835_gpio_fsel_输出);
//眨眼
而(1)
{
//打开它
bcm2835_gpio_写入(引脚,高电平);
//稍等
bcm2835_延迟(500);
//关掉它
bcm2835_gpio_写入(引脚,低电平);
//稍等
bcm2835_延迟(500);
}
bcm2835_close();
返回0;
}

gcc-cmain.c
对于您获得的输出没有意义。也就是说,如果这真的是你正在做的,你需要改变它:

gcc -o main main.c
您可能仍然会从链接器中得到“undefined symbol”错误,因为您没有使用定义这些符号的库进行链接。快速查看您链接的站点上的示例表明,您需要链接到
bcm2835
库:

gcc -o main main.c -lbcm2835

如果您将库安装在
gcc
不知道如何查找的地方,则可能还需要添加
-L
标志。

gcc-c main.c
对于您获得的输出没有意义。也就是说,如果这真的是你正在做的,你需要改变它:

gcc -o main main.c
您可能仍然会从链接器中得到“undefined symbol”错误,因为您没有使用定义这些符号的库进行链接。快速查看您链接的站点上的示例表明,您需要链接到
bcm2835
库:

gcc -o main main.c -lbcm2835

如果将库安装在
gcc
不知道如何查找的地方,则可能还需要添加
-L
标志。

gcc-c main.c
没有意义。你用的真正的命令是什么?那是我用的真正的命令…那可能是你的问题。我会写一个答案。
gcc-cmain.c
没有意义。你用的真正的命令是什么?那是我用的真正的命令…那可能是你的问题。我会写一个答案。