我正在尝试运行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'
答案 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
”时是否有任何消息或警告?