如何在我的二进制文件中包含共享库依赖项(不使用.deb或.rpm)和/或静态链接PulseAudio?

时间:2015-04-29 14:17:35

标签: c++ ubuntu pulseaudio

我在构建一个用C ++编写的命令行工具时遇到了困难,因此它可以由i386和amd64版本的Ubuntu执行(理想情况下也是其他发行版,但那不是很重要)。它将分发在USB密钥上,因此我无法控制包装。

我的命令行工具也应该从缓冲区播放一些音频,所以我使用PulseAudio Simple来播放音频缓冲区。

请注意我的可执行文件在我的开发计算机上正常运行。当我将其复制到USB密钥并在其他计算机上运行时出现问题。在那里,一旦我启动我的可执行文件,我得到一个"文件未找到"来自bash的错误;从我所学到的,应该是因为在目标机器上缺少libpulse-dev包(以及动态链接的库)。

所以,我好心地问:我应该做什么?我尝试构建一个32位静态PulseAudio,但是我甚至无法编译它,老实说,我不知道还有什么可以尝试。除了静态链接之外,还有另一种方法可以在USB密钥中使用我的应用程序部署共享库吗?

由于

1 个答案:

答案 0 :(得分:1)

  1. 请包含所有相关的共享库。为此,请运行ldd your_app以获取相关库的列表。
  2. 使用优选的POSIX shell脚本来调用您的应用程序

  3. 在脚本中通过适当设置LD_LIBRARY_PATH指向您的库