基本上,我希望从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
。
这不起作用,它只是说该文件不存在。我尝试使用exec
和source
,但没有任何效果。当然,必须有一种从其他地方调用此方法的方法,对吗?我知道从理论上讲我可以将当前目录保存为环境变量cd
到目录./a.out
中,然后退出cd
到保存的目录中,但这似乎很麻烦为了它的价值。
编辑:我发现从理论上讲我可以将其放入我的bin
中并用-o
进行编译。我没有尝试过,但是我不想这样做,因为该代码仍在开发中,所以我不想每次都进行编译和移动。
答案 0 :(得分:0)
这有效:
“尝试调用/Users/User/screensaver/a.out而不在路径的开头添加点。出于特殊的安全原因,当您需要指定./a.out而不是a.out时您位于包含可执行文件的目录中。” -tshiono