【问题标题】:User-friendly CMake library paths (CCMake)用户友好的 CMake 库路径 (CCMake)
【发布时间】:2013-11-22 11:36:47
【问题描述】:

我开始创建一个对非开发人员必须对用户友好的 CMake 项目。我知道这不是一件容易的事,但我使用了ccmake,他们似乎对此很满意。

然而,不知何故,我需要在文本 gui 中显示我所有的库根路径。他们需要看到选项,我必须遵守(其中一些在 windows 下)。

我已经尝试过通常的方法,例如使用 Boost:

# Boost
FIND_PACKAGE(Boost 1.54.0 COMPONENTS program_options REQUIRED)
SET(Boost_DIR          "${Boost_DIR}"          CACHE STRING "Boost installation directory")
SET(Boost_INCLUDE_DIRS "${Boost_INCLUDE_DIRS}" CACHE STRING "Boost headers directory")
SET(Boost_LIBRARY_DIRS "${Boost_LIBRARY_DIRS}" CACHE STRING "Boost libraries directory")

这很好用,但我当然只想使用Boost_DIR。最佳方案是让他们看到预先填充了FIND_PACKAGE 的发现的选项。

我听不懂。

FIND_PACKAGE当然会找到Boost,并设置header和lib目录,它们出现在ccmake中。奇怪的是,Boost_DIR 并没有出现在文本 gui 中!当然,除非您按t,但这些并不是我正在处理的真正“高级用户”。此外,在我的 mac(使用自制软件)上仍然是空的(Boost_DIR-NOTFOUND)。这让人们很恼火,因为他们期待/usr/local

你会怎么做,尽可能地对用户友好?包括“windows-friendly”:)

【问题讨论】:

    标签: c++ boost cmake


    【解决方案1】:

    CMake 很有可能找到 Boost_INCLUDE_DIRS 和 Boost_LIBRARY_DIRS 而 Boost_DIR 保持未找到。

    如果您将 Boost 下载到某个不起眼的地方,然后构建并安装它,至少在 Windows 上会发生这种情况 (bjam install)。在 Windows 上,“安装”会将头文件和库复制到“C:\Boost\include”和“C:\Boost\libs”之类的位置。

    CMake 知道查看“C:\Boost”,在这种情况下,它会初始化 Boost_INCLUDE_DIRS 和 Boost_LIBRARY_DIRS,但不会初始化 Boost_DIR。

    也许您可以从您的 GUI 中隐藏 BOOST_DIR 以避免与您的客户混淆。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-16
      • 2014-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-05
      • 1970-01-01
      相关资源
      最近更新 更多