linux - 我如何将需要另一个文档的二进制文件添加到命令行?

标签 linux bash terminal

我的环境是Ubuntu16.04。

我的二进制文件的结构是这样的:

copy
├── creat
├── creat.cpp
├── makeup.sh
├── MODEL.cpp
└── README.md

creat 是我要添加到命令行的二进制文件。

MODEL.cpp 是creat 需要的文档。

在 creat.cpp 中,我应该像这样打开 MODEL.cpp:

in.open("MODEL.cpp");

但我希望任何克隆此 repo 的人都可以轻松使用它。 所以我写了一个 shell 脚本 makeup.sh:

#!/bin/bash
g++ creat.cpp -o creat
sudo cp creat /usr/local/bin
sudo cp MODEL.cpp /usr/local/bin
echo "Now you can try it"

但是当我使用命令creat时,终端告诉我:

Can not find MODEL.cpp

但是 MODEL.cpp 存在于/usr/local/bin 中。

我不知道这是怎么回事,我该怎么办?

最佳答案

这是因为 MODEL.cpp 不存在于您执行 creat 的当前位置,即使 creat 和 MODEL.cpp 都在同一个文件夹中。

最好的选择是将依赖的 MODEL.cpp 文件保存在 /etc 文件夹中。

将此行 in.open("MODEL.cpp"); 更改为 in.open("/etc/MODEL.cpp");

因此,无论您在哪里执行 creat 二进制文件,它都可以正常工作。

关于linux - 我如何将需要另一个文档的二进制文件添加到命令行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44416064/

相关文章:

bash - 在 bash 中使用 iconv 更改编码多个文件

php - ffmpeg-php 和 shell_exec

linux - 使用 popen 创建的 FILE 上的 fclose 发生了什么?

string - 从 Bash 脚本检测操作系统并通知用户

linux - bash 中的浮点/科学记数法值错误

bash - 如何设置使 git 和 conda 都可以在 bash 中显示的 PS1?

mysql - 无法远程连接到 MySQL

python - 安装python包时出现Errno 13

linux - 仅当第二个文本文件中也存在时,才基于第一个文本文件中的第二个字段组合两个文本文件

java - 设置 Java 系统属性而不将值放在命令行上