sh:gnuplot:在 Gnuplot + Xcode 中找不到命令
Posted
技术标签:
【中文标题】sh:gnuplot:在 Gnuplot + Xcode 中找不到命令【英文标题】:sh: gnuplot: command not found in Gnuplot + Xcode 【发布时间】:2014-04-02 15:04:14 【问题描述】:我有一个类似的问题,但答案并不是完全解决方案,所以如果我能得到一些帮助,将不胜感激。
问题是我编译的时候Xcode报上面的错误sh: gnuplot: command not found.
我在终端中检查了which gnuplot
,正如 macports 所预期的那样,它位于/opt/local/bin/gnuplot
。 printf("PATH=%s\n", getenv("PATH"));
还显示了路径 PATH=/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin
我怀疑其中存在问题,但我不知道如何解决它。
提前致谢!
【问题讨论】:
【参考方案1】:将脚本中出现的gnuplot
替换为/opt/local/bin/gnuplot
以排除$PATH
。
【讨论】:
【参考方案2】:阻止Xcode运行的关键问题确实与gnuplot
的PATH
有关。根据你在mac中使用的包管理系统,gnuplot
的目录会有所不同。
在终端输入which gnuplot
将显示gnuplot
的确切位置。
在macport
的情况下,gnuplot
位于/opt/local/bin
,Xcode的默认路径设置中不包含。
要查看您的PATH
,请输入
std::cout << "PATH=" << getenv("PATH") << std::endl; // #include<iostream>
或
printf( "PATH=%s\n", getenv("PATH") ); // #include<cstdio>
可以向您显示类似的路径
/usr/bin:/bin:/usr/sbin:/sbin:/usr/bin
这是我的解决方案。
最简单的方法是使用软链接将gnuplot
的真实目录(/opt/local/bin
)与可接受的方向结合起来,例如Xcode中getenv("PATH")
显示的(/usr/bin
),像
ln -s /opt/local/bin/gnuplot /usr/bin/gnuplot
如果你的.bash_profile
设置抵抗了前面的方法,那么更安全更稳定的方法是直接在Xcode项目中添加外部路径,
这是来自here 的原创。简而言之,在Product>Scheme>Edit Scheme...
中添加PATH
,如下所示,然后关闭此窗口。
尝试使用此代码在 Xcode 中生成您的第一个 gnuplot
#include <iostream>
#include "gnuplot-iostream.h"
int main( )
Gnuplot gp;
gp << "plot [-10:10] sin(x),atan(x),cos(atan(x))\n";
return 0;
【讨论】:
以上是关于sh:gnuplot:在 Gnuplot + Xcode 中找不到命令的主要内容,如果未能解决你的问题,请参考以下文章