【发布时间】:2014-05-21 14:30:43
【问题描述】:
我对使用终端有点新手,所以如果你能帮我解决这个问题,我会非常感激。
这个名为 mismatch 的小文件夹是我下载的代码附带的,它应该有四个这样的参数
./mismatch/mismatch 3 1 ${SFILE}
并计算蛋白质序列的错配分数。文件夹“mismatch”包含 mismatchManager.cc、makefile 和一个名为“CVS”的文件夹。
在makefile中,
all: mismatchManager.cc
g++ mismatchManager.cc -o ../../bin/mismatch -lm
经过快速搜索,我发现 -o 用于命名 .exe 文件,而 -lm 用于将可执行文件链接到我认为是“bin”的库。所以当我从终端运行“make”命令时,它给出了以下错误。
ld: can't open output file for writing: ../../bin/mismatch, errno=2
collect2: ld returned 1 exit status
我认为“bin”目录可能是存储可执行文件的 /usr/local/bin,所以我将上面的路径替换为这个路径,但是它给出了同样的错误。这里有一个 ErrNo=21 Why does the name of a source file affect compilation? 的解决方案,因为据说我没有名为 mismatchManager 的文件夹。
我也把make文件改成了
all: mismatchManager.cc
g++ -o mismatch mismatchManager.cc
然后运行“make”命令。它运行良好,然后我手动将 mismatch.exe 复制到 /usr/local/bin 。这次我能够传递参数,但没有产生任何结果。我不知道该怎么办。
已经谢谢了!
【问题讨论】:
-
"我没有名为 mismatchManager 的文件夹。" - 你的输出文件是
mismatch -
是的。我不明白你的意思。
-
您没有名为
mismatchManager的文件夹这一事实无关紧要,因为这不是您要命名的输出文件。 -
好的。我只是想在我提到的链接中说明我对给定解决方案的理解。
标签: c++ command-line terminal makefile