【发布时间】:2021-03-09 04:38:57
【问题描述】:
我为 Wiring PI 库开发了一个非常简单的 FFI,以便能够使用 Racket 控制 Raspberry Pi。
这很有效,但只涵盖了基本功能。我想扩展它以使用 libwiringPiDev.so 中的 lcd.h,这样我就可以创建一个 FFI 来控制 LCD。
通常,当你编译一个使用 LCD 的 C 文件时,你在编译时同时标记标准库和开发库:
-lwiringPi -lwiringPiDev
在我的 LCD FFI 中,我执行了以下操作:
(define-ffi-definer define-lcd
(ffi-lib "usr/lib/libwiringPiDev.so"))
但是,当我尝试要求该球拍文件时,我遇到了:
; ffi-lib: couldn't open "/usr/lib/libwiringPiDev.so"
; (/usr/lib/libwiringPiDev.so: undefined symbol: digitalRead) [,bt for
; context]
digitalRead 函数存在于基础库中,但不存在于 dev 库中...如何执行“具有依赖关系的 FFI”,以便 Racket 可以正确管理这两个库以便能够找到必要的符号?
【问题讨论】:
标签: raspberry-pi racket ffi wiringpi