【问题标题】:Run the libspotify examples运行 libspotify 示例
【发布时间】:2014-02-25 21:10:01
【问题描述】:

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

这是我做的时候得到的:

libspotify/examples$ 使 LIBSPOTIFY_PATH=../../../.. 对于点唱机中的 spshell 本地文件;做 -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'

【问题讨论】:

  • 您使用的是什么操作系统,您是如何构建示例的? “jukebox.o”听起来像是一个目标文件,而不是可执行文件,因此您可能已经编译了它但没有链接它。
  • 我使用 Makefile 编译它。运行 Ubuntu 64 位。

标签: c spotify libspotify


【解决方案1】:

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

LDLIBS  += -lspotify -lpthread -ldl

【讨论】:

  • 这在我的 archlinux x86_64 机器上修复了。
【解决方案2】:

您必须使文件可执行。

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 谢谢。我没有点唱机文件。我已经用运行 make 时收到的消息更新了问题。
    猜你喜欢
    • 2012-11-19
    • 2012-11-21
    • 2012-02-02
    • 2013-07-28
    • 2012-01-12
    • 1970-01-01
    • 2012-06-15
    • 2023-04-01
    • 2012-06-23
    相关资源
    最近更新 更多