c - 有没有办法从 bash 脚本中执行编译后的 C 代码?

标签 c bash gcc

基本上,我希望从 bash 脚本中调用编译后的 C 代码。我希望能够从任何目录调用 ./a.out 并执行它。

这一切都源于一些非常简单的事情。我制作了一个 curses 程序,它是终端的屏幕保护程序。我希望能够调用 bash 命令 screensaver 并且我希望它通过 bash 调用 c 代码。我希望能够从文件系统中的任何地方调用它。我在 2013 年的 Macbook 上运行,但我认为这更多是对 C 的不熟悉问题,而不是硬件问题,如果需要,我可以提供更多详细信息。

文件在这里:

/Users/User/screensaver/screensaver.c

cd/Users/User/screensaver

gcc screensaver.c 创建a.out

然后我可以运行

./a.out 代码运行。

我试过调用 ./Users/User/screensaver/a.out 等等。

这不起作用,它只是说该文件不存在。我试过使用 execsource 但没有任何效果。当然必须有一种方法可以从其他地方调用它,对吧?我知道理论上我可以将当​​前目录保存为环境变量,cd 进入目录,./a.out,然后退出 cd回到保存的目录,但这似乎很难实现它的值(value)。

编辑:我发现理论上我可以将它放入我的 bin 并使用 -o 进行编译。我没有尝试过,但我不想这样做,因为这段代码仍在开发中,所以我不想每次都必须编译和移动它。

最佳答案

这有效:

“尝试调用/Users/User/screensaver/a.out 而不在路径的开头放置点。出于特殊的安全原因,您需要指定 ./a.out 而不是 a.out when您位于包含可执行文件的目录中。” -tshiono

关于c - 有没有办法从 bash 脚本中执行编译后的 C 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55643188/

相关文章:

控制网络带宽

linux - 通过脚本为机器添加别名

c++ - GCC - 多个预编译头文件和特定路径

C语言编程错误: expected specifier-qualifier-list before '{ '

c - 为什么字符串的 scanf/printf 打印不同的东西

c - 如何合并来自不同项目的事件循环

c - 添加来自 3 个不同 CSV 列的数字

bash - 如何将 Go cmd 应用程序提供为高效应用程序

linux - 在登录时执行 bash 并添加别名

c - 为什么在 AMD64 上对 mmap'ed 内存的未对齐访问有时会出现段错误?