Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用CMake?_C++_Visual Studio_Cmake - Fatal编程技术网

C++ 如何使用CMake?

C++ 如何使用CMake?,c++,visual-studio,cmake,C++,Visual Studio,Cmake,我试图使用CMake来编译opencv 我正在阅读,但不明白什么是CMakeLists文件,它是如何连接到CMake的gui的 也无法理解什么是makefiles,它们是否与CMakeLists相同 我最后用visual studio打开的是哪个文件?我不知道Windows(从未使用过),但在Linux系统上,您只需创建一个构建目录(在最上面的源代码目录中) 进去 cd build-dir 然后运行cmake并指向父目录 mkdir build-dir cmake .. 最后运行make

我试图使用CMake来编译opencv

我正在阅读,但不明白什么是CMakeLists文件,它是如何连接到CMake的gui的

也无法理解什么是makefiles,它们是否与CMakeLists相同


我最后用visual studio打开的是哪个文件?

我不知道Windows(从未使用过),但在Linux系统上,您只需创建一个构建目录(在最上面的源代码目录中)

进去

cd build-dir
然后运行
cmake
并指向父目录

mkdir build-dir
cmake ..
最后运行
make

make
请注意,
make
cmake
是不同的程序
cmake
是一个
Makefile
生成器,而
make
实用程序由
Makefile
文本文件管理。请参阅&wikipedia页面


注意:在Windows上,
cmake
可能会运行,因此可能需要以不同的方式使用。您需要阅读文档(就像我为Linux做的那样)

CMake获取一个CMakeList文件,并将其输出到特定于平台的构建格式,例如Makefile、visualstudio等


首先在CMakeList上运行CMake。如果您在Visual Studio上,则可以加载输出项目/解决方案。

是的,cmake和make是不同的程序
cmake
是(在Linux上)一个Makefile生成器(Makefile-s是驱动
make
实用程序的文件)。还有其他Makefile生成器(特别是configure和autoconf等)。您还可以找到其他程序(例如)。

关于CMake 3.13.3、平台Windows和IDE Visual Studio 2017,我建议这样做。简而言之,我建议:
1.下载cmake>解压>执行。
2.例如,下载GLFW>解压它>创建内部文件夹构建。
3.在cmake浏览“源”>浏览“生成”>配置并生成。
4.在Visual Studio 2017中构建您的解决方案。
5.获取二进制文件。

问候。

从Windows终端制作:

mkdir build
cd build/
cmake ..
cmake --build . --config Release
./Release/main.exe
CMake(跨平台制造)是一个构建系统生成器。它不会构建您的源代码,而是生成构建系统所需的:构建脚本。这样,您就不需要编写或维护特定于平台的构建文件。CMake使用相对较高的级别,通常在
CMakeLists.txt
文件中编写。使用第三方库时的常规工作流通常归结为以下命令:

cmake-S thelibrary-B build
cmake——构建
cmake——安装构建
第一行称为配置步骤,它在系统上生成生成文件
-S
(ource)是库源,而
-B
(uild)文件夹。CMake会根据您的系统返回生成构建。它将是Windows上的MSBuild,Linux上的GNU Makefiles。您可以使用
-G
(Generator)参数指定生成,如:

cmake -G Ninja -S libSource -B build
此步骤结束时,在生成目录上生成生成生成脚本,如Makefile、*.sln文件等

第二行调用实际的build命令,就像调用build文件夹上的
make

第三行安装库。如果您在Windows上,您可以通过,
cmake--openbuild
快速打开生成的项目


现在,您可以使用由CMake配置的项目上安装的库,编写自己的CMakeLists.txt文件。要做到这一点,您需要创建一个目标库,并使用
find_package
命令查找您安装的包,该命令将导出库目标名称,并将它们与您自己的目标链接起来。

Makefile是什么?在哪里可以找到visualstudio的项目/解决方案文件?在运行cmake(或CMakeSetup)并点击generate之后,您应该能够在项目树中的某个位置找到Makefile(如果是unix)或项目文件。可以在CMakeList中指定位置。下面是我在CMake wiki上发现的一个简短演示,您可能会发现它很有用:CMake使用您选择的构建格式配置整个项目,这意味着它可以设置所有内容,以便您可以使用Visual Studio进行编译。默认情况下(至少在linux上),它生成一个使用Make的项目。Make用于实际构建项目,而不是配置或设置项目。因此,首先您必须使用CMake来设置项目,然后运行Make来编译和构建东西;我不知道如何在子目录中获取构建文件。我不明白为什么官方文档没有提到这一点。这在Linux下可以工作,但在Windows上它会在检测C/C++编译器时中断。你知道怎么做吗?这取决于你的电脑是如何设置的。检查你的答案是否正确。顺便说一下,我从来没有使用Windows(我在1974中编写了第一个程序),所以很多的投票,答案不涉及VisualStudio.@ BYX:AFAIK,VisualStudio是一个专有的C++编译器(与Visual Studio代码不一样,它是一个源代码编辑器),只在Windows上工作。我的答案是针对LinuxI的,我认为这有点让人困惑。cmake是一个构建系统生成器,它可以生成的内容之一是makefile(如中所示)。不过,它还可以生成许多其他系统,它们不是“Makefile生成器”。在macos上(可能在其他任何地方),如果您运行cmake--help,它将为您提供一个长长的生成器列表。例如,cmake可以生成Xcode项目-与make无关。如果问题与Windows有关,则应在其中提及(可能带有
Windows
标记),涉及cmake 3.13.3、平台Windows和IDE Visual Studio 2017,我建议:您好。如果您想在
build
目录中的一个单独的
installdir
子目录中包含文件,您可以这样做:
cmake-DCMAKE\u INSTALL\u PREFIX=./installdir..