C++ 可执行文件,sh 1 :not found

标签 c++ linux system executable ros

我创建了一个与 ros 一起使用的 c++ 程序。第一步是在终端中打开一个 roscore,然后从那里继续。我用 system("roscore &");

这样做

我编译了我的文件并且可以用 ./file 运行它。

但是,我希望能够将其作为应用程序运行(双击)。我创建了一个 .desktop 文件,该程序出现在我的应用程序列表中。但是,当我启动它时,我得到的只是一个终端,它打开时显示消息

sh: 1: roscore: not found

etc.

这同样适用于 roslaunch 命令。我还 fork 并执行了一个 roslaunch 命令,但效果不佳。

我试过 system("ls"); 效果很好。所有 cout 消息也都有效。

知道这里出了什么问题吗?

最佳答案

roscore 可执行文件不在标准路径 (/bin:/usr/bin:) 中。使用绝对路径 - system("/path/to/roscore &")

关于C++ 可执行文件,sh 1 :not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44385875/

相关文章:

c - 在 Linux 上更新 PATH 变量

c++ - 避免不必要地添加抽象函数以适应新功能的设计模式

c++ - 图论 : Breadth First Search

c++ - 如何使用 natvis Visual Studio C++ 调试器可视化工具对单一类型进行多个列表扩展

linux - 默认 apt-get 语言更改

linux - 如何计算 CSV 文件中一列的平均值?

c++ - CUDAMemcpy 对我来说毫无意义......为什么我要在普通 C++ 中指定设备内存?

c++ - Linux API(如 MSDN)的引用?

java - 哪个系统组件负责在 Java 应用程序中绑定(bind) Unicode 连字?

c# - C#中的NotifyIcon.ShowBalloonTip可以自定义吗?