如何在树莓派.bashrc中用./path/to/file运行编译后的C++代码
树莓派.bashrc配置执行C++程序报错解决方案
错误根因
你手动在终端执行命令时的工作目录,和.bashrc脚本加载时的默认工作目录不一致,是该问题的最常见诱因:
- 手动执行时,你的终端工作目录是程序所在父目录,
./path/to/file是基于当前目录的相对路径,可以正常定位到文件 .bashrc是bash shell启动时自动执行的脚本,默认执行工作目录为用户家目录(通常为/home/pi),此时相对路径无法匹配到程序文件,就会抛出“没有该文件或目录”的错误
修复方案
方案1(推荐):使用绝对路径执行
- 先在可以正常执行程序的终端窗口,执行
pwd命令获取当前工作目录的绝对路径,例如输出为/home/pi/cpp_project - 拼接得到程序的完整绝对路径:
/home/pi/cpp_project/path/to/file - 把
.bashrc里原有的./path/to/file替换为上述完整绝对路径即可
方案2:先切换工作目录再执行
如果需要保留相对路径写法,可以在.bashrc中先切换到对应工作目录再执行程序:
# 切换到程序所在的父目录,替换为你自己的目录路径 cd /home/pi/cpp_project ./path/to/file
注意:该方案会修改终端启动后的默认工作目录,如果你不需要这个改动,优先使用方案1
异常排查
如果修改为绝对路径后依然报错,可以按以下步骤排查:
- 检查可执行权限:执行
chmod +x 程序绝对路径,给程序补全当前用户的可执行权限 - 检查动态库依赖:执行
ldd 程序绝对路径,查看输出中是否有标记为not found的依赖库,如果有,需要在执行程序前先在.bashrc中配置动态库路径:export LD_LIBRARY_PATH=依赖库所在目录路径:$LD_LIBRARY_PATH /home/pi/cpp_project/path/to/file
内容的提问来源于stack exchange,提问作者user7111002
相关产品推荐
相关产品推荐

