我正在尝试运行spotify示例。我已经成功编译了它们,但我无法运行任何东西。当即执行./jukebox.o时,它只是说"无法执行二进制文件"。如何运行示例?
这是我做的时候得到的:
libspotify/examples$ make LIBSPOTIFY_PATH=../../../..对于自动存储塔 spshell 本地文件;do make -C $a LIBSPOTIFY_PATH="/home/alexander/slask/libspotify-12.1.51-Linux-x86_64-release" all;做make[1]: 输入目录 /home/alexander/slask/libspotify-12.1.51-Linux-x86_64-release/share/doc/libspotify/examples/jukebox'
cc -I/usr/include/alsa -I/home/alexander/slask/libspotify-12.1.51-Linux-x86_64-release/include -Wall -Wl,-rpath,/home/alexander/slask/libspotify-12.1.51-Linux-x86_64-release/lib -L/home/alexander/slask/libspotify-12.1.51-Linux-x86_64-release/lib jukebox.o appkey.o alsa-audio.o audio.o -o jukebox -lasound -lspotify
/usr/bin/ld: alsa-audio.o: undefined reference to symbol 'pthread_create@@GLIBC_2.2.5'
/lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[1]: *** [jukebox] Error 1
make[1]: Leaving directory
/home/alexander/slask/libspotify-12.1.51-Linux-x86_64-release/share/doc/libspotify/examples/jukebox'make[1]: 输入目录 /home/alexander/slask/libspotify-12.1.51-Linux-x86_64-release/share/doc/libspotify/examples/spshell'
cc -I/home/alexander/slask/libspotify-12.1.51-Linux-x86_64-release/include -Wall -Wl,-rpath,/home/alexander/slask/libspotify-12.1.51-Linux-x86_64-release/lib -L/home/alexander/slask/libspotify-12.1.51-Linux-x86_64-release/lib spshell.o spshell_posix.o appkey.o cmd.o browse.o search.o toplist.o inbox.o star.o playlist.o test.o -lreadline -lspotify -o spshell
/usr/bin/ld: spshell_posix.o: undefined reference to symbol 'pthread_create@@GLIBC_2.2.5'
/lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[1]: *** [spshell] Error 1
make[1]: Leaving directory
/home/alexander/slask/libspotify-12.1.51-Linux-x86_64-release/share/doc/libspotify/examples/spshell'make[1]:输入目录/home/alexander/slask/libspotify-12.1.51-Linux-x86_64-release/share/doc/libspotify/examples/localfiles'
make[1]: Leaving directory
/home/alexander/slask/libspotify-12.1.51-Linux-x86_64-release/share/doc/libspotify/examples/localfiles'
我在 64 位 Ubuntu 上遇到了类似的问题。编辑 examples/common.mk 中的 LDLIBS 行,如下所示
LDLIBS += -lspotify -lpthread -ldl
您必须使文件可执行。
尝试 chmod u+x 点唱机.o,如果这不起作用,您应该尝试像 gcc 点唱机.c -o 点唱机一样编译它
在 Linux 上,成功运行 makefile 后,您的 share/doc/libspotify/examples/jukebox 目录应如下所示:
weeble@mylaptop:~/prj/libspotify/libspotify-12.1.51-Linux-i686-release/share/doc/libspotify/examples$ ls -l jukebox/
total 140
-rw-r--r-- 1 weeble weeble 5588 Jun 13 2012 alsa-audio.c
-rw-r--r-- 1 weeble weeble 5392 Feb 26 09:25 alsa-audio.o
-rw-r--r-- 1 weeble weeble 856 Feb 26 09:26 appkey.o
-rw-r--r-- 1 weeble weeble 1840 Jun 13 2012 audio.c
-rw-r--r-- 1 weeble weeble 1828 Jun 13 2012 audio.h
-rw-r--r-- 1 weeble weeble 1400 Feb 26 09:25 audio.o
-rw-r--r-- 1 weeble weeble 1718 Jun 13 2012 dummy-audio.c
-rwxr-xr-x 1 weeble weeble 21865 Feb 26 09:26 jukebox
-rw-r--r-- 1 weeble weeble 15156 Jun 13 2012 jukebox.c
-rw-r--r-- 1 weeble weeble 9116 Feb 26 09:19 jukebox.o
-rw-r--r-- 1 weeble weeble 1051 Jun 13 2012 Makefile
-rw-r--r-- 1 weeble weeble 4469 Jun 13 2012 openal-audio.c
drwxr-xr-x 3 weeble weeble 4096 Jun 13 2012 osx
-rw-r--r-- 1 weeble weeble 3378 Jun 13 2012 osx-audio.c
-rw-r--r-- 1 weeble weeble 8860 Jun 13 2012 playtrack.c
-rw-r--r-- 1 weeble weeble 18990 Jun 13 2012 queue.h
可执行文件是名为" jukebox
"。所以运行" ./jukebox/jukebox
"。如果该文件不存在,则可能是生成过程失败。运行" make
"时是否有任何消息或警告?