运行libspotify示例

时间:2014-02-25 21:10:02

标签: c spotify libspotify

我正在尝试运行spotify示例。我已经成功地编译了它们,但我无法运行任何东西。当ie ./jukebox.o它只是说“不能执行二进制文件”。如何运行示例?

这是我做的时候得到的:

libspotify / examples $ make LIBSPOTIFY_PATH = .. / .. / .. / .. 用于jukebox spshell localfiles;做-C $ a LIBSPOTIFY_PATH =“/ home / alexander / slask / libspotify-12.1.51-Linux-x86_64-release”all; DONE 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'

3 个答案:

答案 0 :(得分:3)

我在64位Ubuntu上遇到了类似的问题。编辑examples / common.mk中的LDLIBS行,如下所示

LDLIBS  += -lspotify -lpthread -ldl

答案 1 :(得分:0)

您必须使文件可执行。

尝试使用chmod u + x jukebox.o,如果这不起作用,你应该尝试编译它像gcc jukebox.c -o jukebox

答案 2 :(得分:0)

在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”时是否有任何消息或警告?