树莓派 链接错误? 变量 未定义,可是我包含了这些函数的源代码啊
为啥提示我链接找不到函数?我哪里错了? 我折腾了两天了
这个是我的代码:
#include <stdio.h>
#include <unistd.h>
#include <gpio.h> //控制gpio的库
//-----------------------------------------------------
#define KEY 41
#define LED 42
// 使用gpio pins命令查看得到这两个引脚编号
//-----------------------------------------------------
//-----------------------------------------------------
void debug_gpio_001()
{
pin_set_mode(LED, OUTPUT);
pin_set_mode(KEY, INPUT);
pin_set_pullUpDn(KEY, PULL_UP); //开启内部上拉
while (1)
{
if (pin_read(KEY) == 0)
pin_write(LED, 1);
else
pin_write(LED, 0);
}
//return 0;
}
int main()
{
printf("%s 向你问好!\n", "cpp_h618");
return 0;
}
以下是链接错误提示:
root@WalnutPi:~/projects/cpp_h618# make
[ 33%] Linking C executable h618Car
/usr/bin/ld: CMakeFiles/h618Car.dir/usr/lib/walnutpi/gpioc/libgpio/board.c.o: in function `pin_get_mode':
board.c:(.text+0x220): undefined reference to `gpio_get_mode'
/usr/bin/ld: CMakeFiles/h618Car.dir/usr/lib/walnutpi/gpioc/libgpio/board.c.o: in function `pin_set_mode':
board.c:(.text+0x258): undefined reference to `gpio_set_mode'
/usr/bin/ld: CMakeFiles/h618Car.dir/usr/lib/walnutpi/gpioc/libgpio/board.c.o: in function `pin_set_pullUpDn':
board.c:(.text+0x324): undefined reference to `gpio_set_pullUpDn'
/usr/bin/ld: CMakeFiles/h618Car.dir/usr/lib/walnutpi/gpioc/libgpio/board.c.o: in function `pin_read':
board.c:(.text+0x364): undefined reference to `gpio_read'
/usr/bin/ld: CMakeFiles/h618Car.dir/usr/lib/walnutpi/gpioc/libgpio/board.c.o: in function `pin_write':
board.c:(.text+0x39c): undefined reference to `gpio_write'
/usr/bin/ld: CMakeFiles/h618Car.dir/usr/lib/walnutpi/gpioc/libgpio/board.c.o: in function `pin_get_mode_name_now':
board.c:(.text+0x3e4): undefined reference to `gpio_pin_get_mode_name'
/usr/bin/ld: CMakeFiles/h618Car.dir/usr/lib/walnutpi/gpioc/libgpio/board.c.o: in function `pin_get_mode_name_by_num':
board.c:(.text+0x42c): undefined reference to `gpio_pin_get_mode_name_by_num'
/usr/bin/ld: CMakeFiles/h618Car.dir/usr/lib/walnutpi/gpioc/libgpio/board.c.o: in function `soft_pwm_set_duty_cycle':
board.c:(.text+0x464): undefined reference to `pwm_set_duty_cycle'
/usr/bin/ld: CMakeFiles/h618Car.dir/usr/lib/walnutpi/gpioc/libgpio/board.c.o: in function `soft_pwm_set_frequency':
board.c:(.text+0x4a4): undefined reference to `pwm_set_frequency'
/usr/bin/ld: CMakeFiles/h618Car.dir/usr/lib/walnutpi/gpioc/libgpio/board.c.o: in function `soft_pwm_get_duty_cycle':
board.c:(.text+0x4e4): undefined reference to `pwm_get_duty_cycle'
/usr/bin/ld: CMakeFiles/h618Car.dir/usr/lib/walnutpi/gpioc/libgpio/board.c.o: in function `soft_pwm_get_frequency':
board.c:(.text+0x51c): undefined reference to `pwm_get_frequency'
/usr/bin/ld: CMakeFiles/h618Car.dir/usr/lib/walnutpi/gpioc/libgpio/board.c.o: in function `soft_pwm_start':
board.c:(.text+0x54c): undefined reference to `pwm_start'
/usr/bin/ld: CMakeFiles/h618Car.dir/usr/lib/walnutpi/gpioc/libgpio/board.c.o: in function `soft_pwm_stop':
board.c:(.text+0x584): undefined reference to `pwm_stop'
/usr/bin/ld: CMakeFiles/h618Car.dir/usr/lib/walnutpi/gpioc/libgpio/board.c.o: in function `soft_pwm_exists':
board.c:(.text+0x5c4): undefined reference to `pwm_exists'
/usr/bin/ld: CMakeFiles/h618Car.dir/usr/lib/walnutpi/gpioc/libgpio/board.c.o: in function `print_pin_by_search_all_mode_name':
board.c:(.text+0x1030): undefined reference to `gpio_pin_get_mode_name_by_num'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/h618Car.dir/build.make:113: h618Car] Error 1
make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/h618Car.dir/all] Error 2
make: *** [Makefile:91: all] Error 2
root@WalnutPi:~/projects/cpp_h618#
最后,这个是我的cmake文件