我有一些依赖于我的代码的CMake构建的软件包。我通过apt-get获得了它们,它们起作用了。
具体的软件包是;
我确实意识到有些人可能希望从源代码构建这些依赖关系,而且恐怕apt-get软件包的名称可能与已安装的源软件包的名称不同。我只是想知道,对于这两种情况中的一种还是两种情况,我应该在find_package(XXX REQUIRED)指令的CMakeLists.txt文件中放入哪个软件包名称?
答案 0 :(得分:1)
find_package(<package>)
有两种模式,Module
和Config
。
在Config
模式(将首先使用)中,在CMAKE_PREFIX_PATH中查找名为<package>-config.cmake
/ <package>Config.cmake
的文件。
在Module
模式下,CMake查找名为Find<package>.cmake
的文件。
因此,如果您的软件包名为mingw-w64
,则必须有上述文件之一,例如mingw-w64Config.cmake
。
为mingw-w64-i686-dev
机器提供了特殊的体系结构软件包32bit
。您将在32位计算机上安装该软件包,该软件包仍称为mingw-w64
。
PS:请记住,并非所有软件包都提供cmake
文件。在这种情况下,您必须编写自己的Findmingw-w64.cmake
文件。看一下here以获得灵感。