是否有要设置的变量,以便make
命令在其他目录中搜索makefile而不是仅搜索当前工作目录中的makefile?
更新:场景就像这样,在我们的项目中,我们有一个主要定义&设置一些环境变量。然后在根文件夹(要构建)中给出一个make,它没有makefile。因此,我不认为" -c"或其他make选项可以帮助解决这个问题。 经过一些调查,我发现makefile在内部文件夹中并被调用。所以,我的问题是,是否有任何环境变量使得" make"命令在指定的目录中搜索makefile(通过环境变量)。
答案 0 :(得分:2)
简短的回答是否定的,对于GNU make,不可能在与启动文件不同的目录中搜索makefile(或由于// Create the renderer
renderer = new THREE.WebGLRenderer({ alpha: true });
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.setPixelRatio( window.devicePixelRatio );
document.body.appendChild( renderer.domElement );
选项而切换到目录。 )默认情况下。
您有两种选择:一种是使用上面的-C
选项。
另一种方法是在调用-f
之前将MAKEFILES
变量设置为要读入的makefile列表。请注意,这必须是您要读入的实际文件,而不仅仅是包含它们的目录。这样做的缺点是永远不会从这些makefile中获取默认目标:请参阅https://www.gnu.org/software/make/manual/html_node/MAKEFILES-Variable.html,这意味着您需要始终在命令行上指定要构建的目标。
答案 1 :(得分:0)
对于root makefile,您必须指定文件名,使用
make -f mymakefiledir/makefile
对于嵌套的makefile,有make -I MyMakefileDir
$ man make
-f file, --file=file, --makefile=FILE
Use file as a makefile.
-I dir, --include-dir=dir
Specifies a directory dir to search for included makefiles. If
several -I options are used to specify several directories, the
directories are searched in the order specified. Unlike the argu‐
ments to other flags of make, directories given with -I flags may
come directly after the flag: -Idir is allowed, as well as -I dir.
This syntax is allowed for compatibility with the C preprocessor's
-I flag.
答案 2 :(得分:0)
根据GNU make的手册页。
If no -f option is present, make will look for the makefiles,GNUmakefile,
makefile, and Makefile, in that order.
没有环境变量make会引用在其他目录中搜索Makefile。为什么不在根文件夹中创建一个新的makefile来调用内部文件夹中的makefile?