【发布时间】:2016-02-29 07:30:54
【问题描述】:
所以基本上我有以下设置:
一个名为 mylib 的小型测试库,带有相应的 CMake 文件。 CMake 文件创建了所有必要的信息,以便另一个项目(这将是我的二进制文件)可以使用find_package 添加库。该库还有一个安装目标。
一个名为 mybin 的小二进制文件再次根据依赖于 mylib 项目的 CMake 文件。使用find_package,我可以通过指定相应的 myLibConfig.cmake(和 myLibTargets.cmake 等)文件的位置或通过执行 mylib 的安装目标然后让 CMake 自己找到库来添加 mylib。
使用 CMake 和 XCode 一切都像魅力一样。首先,我配置和构建库。其次,我配置我的二进制项目,指定库的位置,然后毫无问题地构建它。
现在我想用 CLion 做同样的事情。我现在的问题是 CLion 将所有生成的 CMake 文件(通常放在 build 文件夹中)放在某个无法在 IDE 中更改的神秘位置。现在,当我想构建 mybin 项目时,我必须指定这个神秘的位置,这对我来说有点奇怪(特别是因为你必须首先找出 CLion 实际放置这些文件的位置)。
所以我的问题是:有没有更方便的方法来处理所描述的配置?我想这或多或少是标准用例,这让我想知道我是否错过了一些东西。能够指定 CLion 应该将生成的 CMake 文件放在哪里可以解决我的问题。
我知道我可以安装库(使用安装目标),然后让 CMake 找到它。这里的问题是 CLion(据我所知)不支持安装目标,因此我必须先使用(在我的情况下)XCode 来构建和安装库。
【问题讨论】:
-
“mylib”应该独立于“mybin”使用,还是应该始终配对使用?
-
是的,应该是独立使用的。真正的问题是 CLion 放置文件的位置。我正在考虑从脚本设置
CMAKE_CACHEFILE_DIR,但我不确定这是否是个好主意。至少它看起来不像是要走的路。 -
find_package旨在与 已安装 库一起使用。The problem here is that CLion (to my understanding) doesn't support install targets- 它可以很容易地克服,参见例如this question. -
感谢您的回复。这就是我现在正在使用的解决方案。好像我误解了
find_package的意图。