boo*_*oon 5 unix directory makefile cmake
我正在尝试按照一些说明在线构建软件.
cd app
mkdir -p build/Release
cd build/Release
cmake ../..
make installpyplusplus && cmake .
make .
Run Code Online (Sandbox Code Playgroud)
我的问题:
cmake
做什么或意味着"../ .." 是什么意思?make
?该cmake
应用程序查找一个特殊的文件,称为CMakeLists.txt
.所以通过运行:
cmake ../..
Run Code Online (Sandbox Code Playgroud)
这就像说给cmake
了CMakeLists.txt
低于两个目录,就像MERose描述.
该cmake
命令在您当前的工作目录(CWD,您运行该命令的目录)中创建了许多文件Makefile
,其中包含一个名为的文件,该文件包含有关编译/构建/复制/写入/等等以及如何执行的文件的规则它.
所以当你跑:
make .
Run Code Online (Sandbox Code Playgroud)
您告诉make
应用程序该Makefile
文件位于您的CWD.它与运行相同:
make
Run Code Online (Sandbox Code Playgroud)
这将Makefile
在您的CWD中查找该文件.
最后,.
是CWD,..
下面是一个级别.
EX:如果您的CWD是 /Users/yourname/
.
代表 /Users/yourname/
..
代表 /Users/
../.
代表 /Users/
../..
代表 /
等等...
什么将'make installpyplusplus && cmake.' ?
当您使用&&
命令时,如果第一个命令返回true(退出状态为零),则将按顺序执行.所以,在你说过的情况下,make installpyplusplus
将会运行,并且在它完成之后(它可以创建一个CMakeLists.txt
,我不知道你在运行什么),如果它返回true,则命令cmake .
将被运行,如果它CMakeLists.txt
在那里,它会正常运行.
奖金:
如果您运行:
make -j4
Run Code Online (Sandbox Code Playgroud)
您将在4个实例中分离构建过程(您可以根据需要更改4)!如果您有多个处理器核心可用,多线程魔术将使其更快地构建:)