在Unix中,我可以在一个目录中运行make而不先cd' d到那个目录吗?
正如在其他答案中提到的,make(1)对此有一个-C选项;有几个命令有类似的选项(例如tar)。值得注意的是,对于其他缺乏此类选项的命令,可以使用以下命令:
(cd /dir/path && command-to-run)
这将在子shell中运行命令,该子shell首先更改了它的工作目录(同时保留父shell的工作目录)。这里用&&代替;捕获无法更改目录的错误情况。
如果你不想cd到一个目录的原因是你需要在当前目录中进行后面的任务,你可以使用pushd和popd:
pushd ProjectDir ; make ; popd
它会进入ProjectDir,运行make,然后回到你所在的地方。
makefile:
all:
gcc -Wall -Wpedantic -std=gnu99 -g src/test.c -o build/test
run:
./build/test
or
run:
./../build/test
etc.
推荐文章
- 如何在Makefile中设置子进程的环境变量
- 有效地测试Linux上的端口是否打开?
- 如何从另一个文件A中删除文件B中出现的行?
- 如何为调试和发布版本配置makefile ?
- 对以制表符分隔的文件进行排序
- 使用sudo时未找到命令
- 当有命令行参数时,如何使用GDB分析程序的核心转储文件?
- 如何使用查找命令从列表中查找所有具有扩展名的文件?
- 如何强制从另一个SSH会话分离屏幕?
- 如何将文件指针(file * fp)转换为文件描述符(int fd)?
- Linux Bash中双&和分号有什么区别?
- 在SSH会话中查找客户端的IP地址
- C++ Linux的想法?
- 如何为Fedora安装g++ ?
- Linux删除大小为0的文件