1.cmake
是来自CMake软件的命令:编译自动化系统; make和make install是Make软件的命令:构建自动化系统。了解CMake,make和GCC的角色
2.从阅读本post,我的理解是:
一个。这个“cmake and make”东西实际上使用g ++/gcc。 cmake和make stuff基本上就是使用g ++/gcc的工具。那是对的吗?
b。 gcc/g ++是做实际工作的编译器。
c。所以我可以直接使用gcc/g ++而不使用make和CMake的东西?
按照这个计算器answer:CMake的需要CMakeList.txt文件,并将其输出到一个特定于平台的构建格式,例如,一个Makefile,Visual Studio中,等
然而,当我碰到this OpenCV的安装:
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
它在一个目录里没有的CMakeLists.txt文件执行cmake的命令。你能解释一下吗?
4.,我已经看到通常的步骤是:cmake
,make
,sudo make install
。 我读这个计算器post,我是这么理解:
(I)make
是建设项目。
(ii)make install
是将二进制/可执行文件复制到已安装的目录。
a。那么当我们make
,结果/二进制文件/可执行文件存储在哪里呢?
b。如果我们只运行make
没有make install
,是否意味着文件没有生成?
c。我碰到这个openCV tutorial关于使用openCV与GCC和CMake。它使用:
cd <DisplayImage_directory>
cmake .
make
为什么它不这样做make install
呢?
5.总结:
CMake的需要CMakeList。txt文件(这是跨平台)生成一个Makefile(这是特定于平台)。
我可以手动编写Makefile并跳过CMake步骤。但是使用CMake步骤更好,因为它是跨平台的,否则如果我改变平台,我必须重新编写Makefile。
Make需要Makefile(由CMake生成或手动编写)作为编译和构建指南。在其工作中基本上使用gcc/g ++或其他编译器。让自己成为编译器的工具。
make install在把结果/可执行文件到安装路径
可能的重复[CMake如何使用?](http://stackoverflow.com/questions/26007566/how-is-cmake-used) – wasthishelpful