I understand that to compile and install something from the source code on a Unix system, the following three steps:
1) ./configure
./configure
2) make
make
3) make install
make install
When I checked the installation of OpenCV from the source , I noticed that it did not have a step ./configure, but it had a cmakestep. This gave me an idea of what is cmakeequivalent ./configure. I also read what cmakebuilding systems can generate, such as Makefiles, and that takes a step ./configure.
cmake
Makefiles
However, this article (see first paragraph what is the difference?) says it cmakealso does the actual assembly. If so, why does the OpenCV installation point to makeafter cmake? In addition, I often see what is being cmakecompared to make, rather than ./configure. So where cmakedoes it really fit?
what is the difference?
Yes, cmakeit looks like the autotools configuration step. It does not perform the assembly itself, but simply creates the necessary files for creation (Makefile, Visual Studio projects, etc.).
CMake --build, , CMake . Makefile, , make .
--build
, , CMake Make, . , Make msbuild, -, , CMake Autotools. , Waf.
, script , CMake: , .
GNU, CMake . KDE Blender - CMake. LLVM , Boost , .
:
CMake pkg-config CMake enabled;-); .
pkg-config
CMake CLI - , "/trivial cross-platform scripting tool";-) - , Windows cmd.exe, / ///& etc "" Linux Windows...
cmd.exe
, IDE CMake.
Comparing w / autotools, which because of the box supports only simple archives (tarballs), CMake (+ CPack) can create different package formats as a result of the assembly. I used it for RPM / DEB / MSI / EXE and with a little help to create NuGet packages.
Source: https://habr.com/ru/post/1683705/More articles:Unable to execute step in cpp file while debugging htppotgot on mac mac - c ++Add the second signature to the polar coordinate based on the graph ggplot2 - rHow to log SQL queries, their parameters and results using Log4jdbc in Spring Boot projects? - javaHow to make the correct route for {id} / visit? - c #Ошибка Grafana "Ошибка инициализации шаблона" после обновления при использовании графитового бэкэнд - graphiteSetting Grid RowDefinitions / ColumnDefinitions Properties in Style - xamlReact component does not respond to mobx observable data - reactjsИзменение faces-config.xml с 2.2 на 2.3 вызывает javax.el.PropertyNotFoundException: Target Unreachable, идентификатор 'bean' разрешен для null - jsfCall a pointer to a function of a C ++ element without knowing which class is c ++Realm update cancellation failed - objective-cAll Articles