是否有任何问题或方法可以在库文件 (libSoundTouch.so) 的代码中使用打印。我正在研究库 - SoundTouch,只是在它的 c++ 代码中添加了一些打印,从而创建了上述和其他一些库文件。虽然它可以编译并且一切正常,但我看不到屏幕上的打印输出(我也检查了 dmesg 日志,但也看不到那里的输出)
我错过了什么吗?或者,有没有办法在那里启用打印?
是否有任何问题或方法可以在库文件 (libSoundTouch.so) 的代码中使用打印。我正在研究库 - SoundTouch,只是在它的 c++ 代码中添加了一些打印,从而创建了上述和其他一些库文件。虽然它可以编译并且一切正常,但我看不到屏幕上的打印输出(我也检查了 dmesg 日志,但也看不到那里的输出)
我错过了什么吗?或者,有没有办法在那里启用打印?
终于搞定了
问题和我做了什么:
当我们运行 soundstretch 实用程序时,它会查找共享库 libSoundTouch.so.0
我有 soundtouch 库和 soundstretch 实用程序的源代码。我在 soundtouch 源代码中添加了 printfs,并编译和安装了 soundtouch 和 soundstretch。soundtouch 库安装在 /usr/local/lib 中
我正在使用 Ubuntu,显然,您可以直接从 Ubuntu 软件中心安装 soundstretch 实用程序,该实用程序安装在正确的路径中(soundstretch 在运行时查找)
现在,当我运行 soundstretch 实用程序时,它正在调用从 Ubuntu 软件中心安装的库,因为它位于默认路径中。这就是为什么我无法看到我在 soundtouch 库源代码中添加的任何打印,因为这些函数从未被调用过。
所以,我删除了 Ubuntu soundtouch 库并在 LD_LIBRARY_PATH 变量中添加了 /usr/local/lib 的一件事,我现在可以看到 printf 正在工作。