gpt4 book ai didi

cross-platform - 从 Jam 迁移到 CMake

转载 作者:行者123 更新时间:2023-12-04 18:48:28 25 4
gpt4 key购买 nike

我了解 Jam 构建现有项目,而 CMake 生成要构建的项目。但是,鉴于我宁愿生成可以在各种 IDE 中使用的项目,而不是尝试将 Jam 集成到那些 IDE 中,有没有人有将 Jamfile 转换为 CMakeLists.txt 文件的经验/成功经验?

最佳答案

我曾经在我所有的 Linux 项目中使用 Jam,因为它比普通的 makefile 更容易。然后我发现了 CMake 并且没有回去。编写 CMakeLists.txt 文件和编写 Jamfile 一样容易,而且您可以免费获得特定于平台的 IDE 支持,尽管 IMO IDE 项目并不像手工生成的东西那么干净。

据我所知,尽管 Jam 有很多优点,但现在很少有人使用它。它确实声称能够在各种平台上构建,但与此同时,它似乎不再享受积极的开发,所以我倾向于不相信它的多平台声明。

据我所知,没有工具可以自动将 Jamfiles 的层次结构转换为 CMakeLists.txt 文件的层次结构,尽管这样的工具肯定是一个可行的项目。但是,由于 Jam 的不受欢迎以及在较小程度上 CMake 的不受欢迎,除非您或我找到一些空闲时间,否则这样的工具不会出现。 :(

如果您的项目不是太复杂,一些简单的搜索和替换操作应该可以将 Jamfile 转换为 CMakeLists.txt 文件。如果您的项目很复杂,那么手动转换它们可能是您最好的选择。

一些简单的转换:

  • HDRS += a.h b.h c.h ;变成 include_directories(a.h b.h c.h)
  • Main HelloWorld : main.cpp utils.cpp ;变成 add_executable(HelloWorld main.cpp utils.cpp utils.h)
  • Library helper : helper.cpp变成 add_library(helper STATIC helper.cpp helper.h)
  • SubDir foo ;变成 add_subdirectory(foo)
  • LinkLibraries HelloWorld : libhelper ;变成 target_link_libraries(HelloWorld helper)

  • CMake 生成的 IDE 项目不会自动包含相关的头文件,因此我在上面的示例中明确包含了重要的头文件。有一个很好的例子 here ,如果你还没有看过。

    关于cross-platform - 从 Jam 迁移到 CMake,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10096391/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com