如何在二进制文件中包含共享库依赖项(不使用.deb或.rpm)和/或针对PulseAudio的静态链接
How do I include shared-library dependencies with my binary (w/o using a .deb or .rpm), and/or statically link against PulseAudio?
我在构建用C++编写的命令行工具时遇到了困难,这样它就可以由i386和amd64版本的Ubuntu执行(理想情况下也可以由其他发行版执行,但这并不那么重要)。它将在USB密钥上分发,所以我无法控制包装。
我的命令行工具也应该从缓冲区播放一些音频,所以我使用PulseAudio Simple来播放音频缓冲区。
请注意,我的可执行文件在我的开发机器上运行良好。当我将它复制到USB密钥上并在其他机器上运行时,会出现问题。在那里,一旦我启动我的可执行文件,我就会从bash中得到一个"找不到文件"的错误;据我所知,这应该是因为目标机器上缺少libpulse-dev包(以及动态链接的库)。
所以,我善意地问:我该怎么办?我试图构建一个32位静态PulseAudio,但后来我甚至无法编译它,老实说,我不知道还能尝试什么。除了静态链接之外,还有其他方法可以在USB密钥中使用我的应用程序部署共享库吗?
感谢
- 请在棒上包含所有相关的共享库。为此,请运行
ldd your_app
以获取相关库的列表 -
制作更好的POSIX shell脚本来调用您的应用程序
-
在脚本中,通过适当地设置LD_LIBRARY_PATH 指向库
相关文章:
- 如何使用 cmake pack redhat 风格的 rpm,这是主要的和"-devel"?
- Arduino RPM代码与正交编码器600ppr
- 如何使用 RPM 从内存中读取标准::字符串
- 如何在没有 OPENPROCESS 的情况下向句柄授予 RPM/WPM 权限?
- cmake/cpack 组件调试信息 rpm 包未出现
- 使用 Arduino 将位置编码器值转换为 RPM 时出现问题
- rpm -q -> 仅查询描述符
- 如何在二进制文件中包含共享库依赖项(不使用.deb或.rpm)和/或针对PulseAudio的静态链接
- 如何使用 qml 组件(不带 C++)创建插件的 deb 包
- cpack deb 生成器组件输出名称
- CPack DEB生成器:控制文件的权限不正确mdsums 0644!=644
- 如何在 RHEL 上为新的 Boost 版本构建/部署 RPM
- Boost: typedef for rpm
- 为Ubuntu创建一个deb包
- 安装RPM时,对libstdc++(GLIBCXX_..)的依赖关系失败