c++ - 在 Ubuntu 20.04 中为 RPI4 链接 WiringPi 共享对象库

标签 c++ ubuntu g++ wiringpi

我希望有人可以帮助我研究一些我认为应该有些微不足道的事情。
我只是想编译一个包含wiringPi.h的cpp文件:

#include <wiringPi.h>

int main(){ return 0; }
我已经使用不同的链接参数运行了数十个不同的命令,无论它总是说什么:
testing_spi.cpp:2:10: fatal error: wiringPi.h: No such file or directory
    2 | #include "wiringPi.h"
      |          ^~~~~~~~~~~~
compilation terminated.
例如,
g++ -lwiringPi -o test test.cpp
g++ -L/usr/lib/aarch64-linux-gnu -lwiringPi -o test_spi testing_spi.cpp
...
所有导致相同的输出。我已经在这里呆了几个小时,并且很困惑为什么它没有链接。
第一个 g++ 示例是在安装了wiringPi 之后运行的,如网站“sudo apt installwiringPi”中所述。在那之后没有用,我注意到 Ubuntu 带有一个预安装的版本(ver2):
sudo apt list --installed | grep wiring

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

libwiringpi2/focal,now 2.50-0ubuntu1 arm64 [installed]
wiringpi/focal,now 2.50-0ubuntu1 arm64 [installed]
但我能从 Ubuntu 找到的唯一文档是垃圾:
https://packages.ubuntu.com/focal/amd64/libwiringpi2/filelist
我能够在目录“/usr/lib/aarch64-linux-gnu/”中找到那些共享对象文件。我只是假设它以相同的方式包含“wiringPi.h”,但我也尝试了一些猜测“libwiringPi.h”、“wiringPi2.h”等。
当我查看 .so.2 文件时,我看到了一些我想使用的功能:
nm -gD --demangle /usr/lib/aarch64-linux-gnu/libwiringPi.so.2
                 w _ITM_deregisterTMCloneTable
                 w _ITM_registerTMCloneTable
                 U __ctype_b_loc
                 w __cxa_finalize
                 U __errno_location
                 U __fprintf_chk
                 w __gmon_start__
                 U __printf_chk
                 U __snprintf_chk
                 U __sprintf_chk
                 U __stack_chk_fail
                 U __stack_chk_guard
                 U __vsnprintf_chk
000000000000b910 T _drcSetupNet
0000000000023fd0 B _wiringPiClk
0000000000023fb8 B _wiringPiGpio
0000000000023fb0 B _wiringPiPads
0000000000023fc0 B _wiringPiPwm
0000000000023fd8 B _wiringPiTimer
0000000000023fc8 B _wiringPiTimerIrqRaw
                 U access
000000000000a180 T ads1115Setup
0000000000005b98 T analogRead
0000000000005bd8 T analogWrite
但是我在尝试让它正确链接时遇到了太多麻烦。任何帮助将不胜感激。我已经盯着这条路太久了。
我也会使用wiringPi 的网站版本,但在运行sudo apt install wiringPi 后找不到任何库文件.我很乐意让任何一个版本都为我工作。提前致谢!

最佳答案

在深入研究为什么没有安装 header 之后。我猜标题不包括在内,除非它是一个'-dev'包。所以我找到了这个包:https://packages.ubuntu.com/hirsute/libwiringpi-dev它有让我编译没有错误的标题。我仍然需要尝试一些功能,但我认为这将是一个单独的问题。

关于c++ - 在 Ubuntu 20.04 中为 RPI4 链接 WiringPi 共享对象库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67561926/

相关文章:

c++ - 设置非常简单的 C/C++ 链接问题

java - C++ 与 Java 或 C# 中堆内存的回收方式有何区别

c++ - 如何用指针交换两个变量

c++ - 对模板类使用 offsetof

ubuntu - Docker 在输出中缺少层 ID

linux - Ubuntu 16.04 如何删除多个大文件集

gcc - 在gcc和g++中选择消息语言

c++ - 位成员倒序?

c++ - 在 Bison 中设置直通规则

ubuntu - Couchdb 无法在 Ubuntu hardy 8.04 上启动