运行 使用 shell 脚本的 makefile
Running a makefile using shell script
我的目录结构如下:
.
├── one
│ ├── one_one
│ │ └── one_one_one
│ │ ├── Makefile
│ │ └── one_one_oneTest.cpp
│ └── one_two
│ ├── Makefile
│ └── one_twoTest.cpp
├── three
│ ├── Makefile
│ └── threeTest.cpp
└── two
└── two_one
├── Makefile
└── two_oneTest.cpp
我想 运行 在我找到 Makefile 的地方使用 make 命令。所以,我写了一个shell脚本如下
#!/bin/bash
find . -type f -name Makefile -exec make \;
但是它给出错误说 make: *** No targets specified and no makefile found. Stop.
如果我只是 运行 find . -type f -name Makefile
,我会得到
./two/two_one/Makefile
./three/Makefile
./one/one_two/Makefile
./one/one_one/one_one_one/Makefile
这是我预期的正确输出。
如果我运行 Makefile 使用make 命令,它运行 是正确的,所以我认为Makefile 是正确的。
shell 脚本有什么问题?
仅供参考,我的一个Makefile如下:
all: TestTwoOne
TestTwoOne: two_oneTest.cpp
g++ two_oneTest.cpp -o TestTwoOne
您的 "current directory" 未更改为 运行 品牌的适当子目录。改为这样做:
find . -type f -name Makefile -execdir make \;
我的目录结构如下:
. ├── one │ ├── one_one │ │ └── one_one_one │ │ ├── Makefile │ │ └── one_one_oneTest.cpp │ └── one_two │ ├── Makefile │ └── one_twoTest.cpp ├── three │ ├── Makefile │ └── threeTest.cpp └── two └── two_one ├── Makefile └── two_oneTest.cpp
我想 运行 在我找到 Makefile 的地方使用 make 命令。所以,我写了一个shell脚本如下
#!/bin/bash
find . -type f -name Makefile -exec make \;
但是它给出错误说 make: *** No targets specified and no makefile found. Stop.
如果我只是 运行 find . -type f -name Makefile
,我会得到
./two/two_one/Makefile
./three/Makefile
./one/one_two/Makefile
./one/one_one/one_one_one/Makefile
这是我预期的正确输出。
如果我运行 Makefile 使用make 命令,它运行 是正确的,所以我认为Makefile 是正确的。 shell 脚本有什么问题?
仅供参考,我的一个Makefile如下:
all: TestTwoOne
TestTwoOne: two_oneTest.cpp
g++ two_oneTest.cpp -o TestTwoOne
您的 "current directory" 未更改为 运行 品牌的适当子目录。改为这样做:
find . -type f -name Makefile -execdir make \;