使用路径运行时,二进制文件不会执行。例如 >./program 不起作用,但 >program 可以正常工作

使用路径运行时,二进制文件不会执行。例如 >./program 不起作用,但 >program 可以正常工作

我尝试运行一个二进制文件时,遇到了一些奇怪的行为。我使用的是 Mac OSX snow leopard,二进制文件本身是 labkey 软件的一部分……从源代码构建的。

如果我尝试使用绝对路径运行该文件,它将不起作用。失败并出现类似以下错误

-bash /Users/me/Sources/labkey/build/bin/program:无法执行二进制文件

但是,如果我更改为目录 /Users/me/Sources/labkey/build/bin/program 并通过输入其名称来运行二进制文件,它就可以正常工作。

我探索了执行该文件的多种排列组合。

如果我尝试在目录 /Users/me/Sources/labkey/external/osx/bin/program 中运行

。/程序

我收到上述错误,但如果我使用

程序

我没有收到错误。

对于可能出现的问题有什么想法吗?

谢谢您的回答,只是添加了更多信息;文件 ./program 的输出是;

./Program: ELF 64 位 LSB 可执行文件,x86-64,版本 1 (SYSV),动态链接(使用共享库),适用于 GNU/Linux 2.6.4,未剥离

“哪个程序”的输出是;

用户/我/来源/labkey/build/bin/program

答案1

您可能有另一个要运行的文件的安装。当您运行该文件时没有使用“./”,它可能从系统上的其他地方调用该文件(因为它在您的 PATH 中)。

执行“哪个程序”来查看您是否确实调用了正确的文件。

相关内容