我正在尝试用 Eclipse 编译 libgpiod 教程。该程序编译正常,但是当我运行它时,出现以下错误:
gcc 编译器和链接器参数如下:
Building file: ../src/Maax-B-C.cpp
Invoking: Cross G++ Compiler
aarch64-none-linux-gnu-g++ -I"/home/ubu/eclipse-workspace/Maax-B-C/include" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/Maax-B-C.d" -MT"src/Maax-B-C.o" -o "src/Maax-B-C.o" "../src/Maax-B-C.cpp"
Finished building: ../src/Maax-B-C.cpp
Building target: Maax-B-C
Invoking: Cross G++ Linker
aarch64-none-linux-gnu-g++ -L"/home/ubu/eclipse-workspace/Maax-B-C/lib" -o "Maax-B-C" ./src/Maax-B-C.o -lgpiod
Finished building target: Maax-B-C
运行时错误:
./Maax-B-C: symbol lookup error: ./Maax-B-C: undefined symbol: gpiod_line_set_direction_input
libgpiod 的其他功能运行良好,例如:gpiod_chip_open、gpiod_chip_get_line 我也尝试在目标操作系统中编译相同的代码,这是成功的,但是当我运行代码时,我遇到了相同的错误输出。
library(libgpiod.so) 和 gpiod.h 也有函数的原型和符号被导出:
nm -D libgpiod.so | grep "gpiod_line_set_direction_input"
00000000000034c0 T gpiod_line_set_direction_input
00000000000034d0 T gpiod_line_set_direction_input_bulk
nm -D libgpiod.so | grep "gpiod_line_request_output"
00000000000039c0 T gpiod_line_request_output
0000000000003a10 T gpiod_line_request_output_flags
你有什么建议来解决这个问题?
谢谢你。