【问题标题】:how to use tclap in cmake project如何在 cmake 项目中使用 tclap
【发布时间】:2014-08-08 23:26:24
【问题描述】:

我是 tclap 和 cmake 的新手

  1. 为什么安装前需要配置tclap?我虽然它只是由头文件组成?

  2. 如何在 cmake 项目中包含 tclap 库。我不能只将头文件复制到 lib 目录或其他东西(并根据需要修改 CMakeLists)吗?

我对这一切都摸不着头脑。顺便说一句,我发现了这个library,其中包含 tclap,看起来作者正在使用 cmake。我可以只复制cmake相关文件并稍微修改它们吗?在这种情况下,我认为 cmake 启动 tclaps 自己的配置过程是否正确?

请帮帮我。

【问题讨论】:

    标签: cmake cross-platform autotools getopt


    【解决方案1】:
    1. 不需要配置。它是仅头文件,因此不需要配置或编译任何内容。配置其实只是为了搭建一些使用tclap的测试程序,使用tclap本身并不是必须的。此外,不必遵循您找到的 cmake 示例中的设置。它不会启动 tclap 的配置过程,而且做得太多了。

    2. 是的,您复制头文件并包含它们的想法是最简单的方法。我建议在项目的根目录中下载并解压最新的 tclap tarball(在撰写本文时最新版本是 tclap-1.2.1)。如果你这样做了,那么将以下内容添加到你的根 CMakeLists.txt 中,在你的构建目标之前:

      include_directories( BEFORE tclap-1.2.1/include )
      ...
      #add_executable( program_using_tclap ... )
      

    然后,您可以在您的 cpp 程序中包含和使用 tclap,cmake 应该能够找到头文件并为您编译程序。

    【讨论】:

    • 非常感谢!我会按照你的建议去做。你是我今天最喜欢的人。我会投票,但我还没有足够的声誉。
    • atsui,您的建议在大多数情况下都很有效。我正在通过 cmake 制作一个 Xcode 项目,但生成的项目在“用户标头搜索路径”下没有 tclap-1.2.1/include 路径。我已经手动添加了,但如果其他人不需要,我会更喜欢。我试过这样写INCLUDE_DIRECTORIES( BEFORE ${CMAKE_HOME_DIRECTORY}tclap-1.2.1/include ),但这也没有用。
    • 你能提供更多关于你的项目文件布局的细节吗?我能够在 Xcode 中为自己设置它就好了:drive.google.com/file/d/0B7BkiMmXtP1lcE9Rd3VnUjFOWXc/…
    • 当然。在我的根目录中,我有这些文件夹:tclap-1.2.1、src 和 bin。我在根目录和 src 目录中有 CMakeLists.txt 文件。 src 目录中的那个只添加可执行文件。根目录下的内容如下:CMAKE_MINIMUM_REQUIRED( VERSION 3.0 ) PROJECT( project1 CXX ) INCLUDE_DIRECTORIES( BEFORE tclap-1.2.1/include ) ADD_SUBDIRECTORY( src bin )
    • 如果这里的答案是正确的,你应该标记为正确。
    猜你喜欢
    • 2021-08-23
    • 1970-01-01
    • 2020-06-06
    • 1970-01-01
    • 2019-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-07
    相关资源
    最近更新 更多