Can't install rpi_ws281x "error: command 'gcc' failed with exit status 1"

Can't install rpi_ws281x "error: command 'gcc' failed with exit status 1"

我正在尝试在我的 Raspberry Pi A+ 上安装 Neopixels 库。起初我这样做,并尝试 运行 代码,但它不起作用。我重新安装了 Raspbian 并仔细安装了头文件和库 我得到了这个:

> Downloading https://pypi.python.org/…/s…/s/setuptools/setuptools-5.7.zip
Extracting in /tmp/tmpkD2xEW
Now working in /tmp/tmpkD2xEW/setuptools-5.7
Building a Setuptools egg in /home/pi/rpi_ws281x/python
/home/pi/rpi_ws281x/python/setuptools-5.7-py2.7.egg
running install
running bdist_egg
running egg_info
creating rpi_ws281x.egg-info
writing rpi_ws281x.egg-info/PKG-INFO
writing top-level names to rpi_ws281x.egg-info/top_level.txt
writing dependency_links to rpi_ws281x.egg-info/dependency_links.txt
writing manifest file 'rpi_ws281x.egg-info/SOURCES.txt'
reading manifest file 'rpi_ws281x.egg-info/SOURCES.txt'
writing manifest file 'rpi_ws281x.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-armv6l/egg
running install_lib
running build_py
creating build
creating build/lib.linux-armv6l-2.7
copying neopixel.py -> build/lib.linux-armv6l-2.7
running build_ext
building '_rpi_ws281x' extension
swigging rpi_ws281x.i to rpi_ws281x_wrap.c
swig -python -o rpi_ws281x_wrap.c rpi_ws281x.i
creating build/temp.linux-armv6l-2.7
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c rpi_ws281x_wrap.c -o build/temp.linux-armv6l-2.7/rpi_ws281x_wrap.o
rpi_ws281x_wrap.c: In function ‘init_rpi_ws281x’:
rpi_ws281x_wrap.c:4638:21: warning: variable ‘md’ set but not used [-Wunused-but-set-variable]
gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-armv6l-2.7/rpi_ws281x_wrap.o -L../. -lws2811 -o build/lib.linux-armv6l-2.7/_rpi_ws281x.so
/usr/bin/ld: cannot find -lws2811
collect2: ld returned 1 exit status
error: command 'gcc' failed with exit status 1

我看到了一些关于这个问题的问题:"install libevent-dev"它没有用。

/usr/bin/ld: cannot find -lws2811
collect2: ld returned 1 exit status

这才是真正的错误。 collect2ld 在编译阶段的包装脚本。 cannot find -lws2811 意味着无论您尝试编译什么,都会尝试 link 反对 libws2811,并且 linker 无法找到该库来解析未定义的引用。

因此,无论您尝试做什么,请尝试找出如何安装缺少的库。尝试从 here 下载库,并在尝试 运行 安装脚本之前将 LD_LIBRARY_PATH 设置为指向保存该文件的位置。

刚刚遇到这个问题,尽管这个问题很老,但我想我会把答案放在这里,以供那些偶然发现这个问题的人使用。如果您在这里,那么您很可能正在做 this。该问题的实际解决方案是您忘记了 运行 rpi_ws281x 目录中的命令 "scons",这将下载您需要的更多依赖项,包括 OP 所指的丢失的 ws2811 库。我自己不小心跳过了那一步:p.