从shell调用C函数(libcanberra)

从shell调用C函数(libcanberra),c,linux,shell,command-line,C,Linux,Shell,Command Line,我想在Git钩子中播放系统声音一段时间 系统声音有a和C库(),但libcanberra没有可执行文件。有没有一种简单的方法可以在不启动完整的perl或python解释器的情况下从shell脚本调用libcanberra方法?如果没有,我将如何使用perl/python实现它呢?为什么不编写一个简单的C程序,通过命令行上指定的内容调用函数呢?您不能从shell调用C函数(除非您为几个shell开发插件,比如zsh,接受它们;但这样您就不会问问题了) 正如匿名用户112358132134所建议的,

我想在Git钩子中播放系统声音一段时间


系统声音有a和C库(),但libcanberra没有可执行文件。有没有一种简单的方法可以在不启动完整的perl或python解释器的情况下从shell脚本调用libcanberra方法?如果没有,我将如何使用perl/python实现它呢?

为什么不编写一个简单的C程序,通过命令行上指定的内容调用函数呢?

您不能从shell调用C函数(除非您为几个shell开发插件,比如zsh,接受它们;但这样您就不会问问题了)

正如匿名用户112358132134所建议的,您只能从shell运行程序,也可以编写一个


Linux上有几个程序可以播放一些声音。在我的Debian box上,软件提供了执行该操作的
play
命令。

在shell中运行C代码之前,您需要编译C代码,因此无法直接从shell调用C函数


命令行只执行机器代码。当您看到它执行文本(shell脚本或python脚本)时,它只调用另一个可以执行文本的程序(如python虚拟机)。因此编译语言(如C或C++)不能直接执行

呵呵。。“匿名用户112358132134”。如果stackoverflow给了我这个默认名称,那就太疯狂了;)第二,这个建议,就这么做吧。它比你想象中的任何东西都更简单、更具界面性。libcanberra作者给我指了指Debian包libcanberra-gtk0中包含的命令canberra gtk play,它做了我需要的事情。