【问题标题】:Issue with CLion and find_package: Generated CMake files are placed in some odd locationCLion 和 find_package 的问题:生成的 CMake 文件放置在某个奇怪的位置
【发布时间】: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的意图。

标签: c++ cmake clion


【解决方案1】:

我误解了find_package 的意图(正如 Tsyvarev 指出的那样)。通过使用this question 中提出的解决方案,我设法向 CLion 添加了一个安装目标,现在我可以方便地构建“mylib”并在“mybin”项目中使用它,而无需手动配置任何东西。

【讨论】:

    猜你喜欢
    • 2015-03-30
    • 2019-10-04
    • 2015-12-01
    • 1970-01-01
    • 2012-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多