gpt4 book ai didi

c++ - 从 Xcode 转换为 CMake

转载 作者:太空狗 更新时间:2023-10-29 21:37:00 26 4
gpt4 key购买 nike

我有一个 C++ 项目,最初是在我的 Mac 上使用 Xcode 开发的,我想使用 CMake 设置完全相同的项目。该项目使用了一些外部库,包括 eigen 和 boost。 Xcode 有一个相当长的build设置列表,包括外部库的路径、编译器版本的规范、附加链接器标志、编译器优化级别等……我想知道所有这些信息在 CMakeLists.txt 文件中的位置.我已经广泛搜索了这方面的帮助,但发现的很少。我是 CMake 的新手,之前从未编写过 make 文件。如果有一个实用程序可以将我的 Xcode 项目转换为 CMake 项目,那就太理想了。但我会很高兴知道这方面的教程,或者有一些具体的指导。对此的任何帮助将不胜感激。

最佳答案

转化策略

我很确定迁移到 CMake 的最简单和最快的方法是查看可比较的项目,这些项目链接相同的依赖项,并且可能将一些相对文件路径复制到您的源文件来自 XCode。使用 Eigen 和 Boost 的精心编写的 CMakeLists.txt 可以非常小(并且与平台无关)。

其中一个原因是 CMake 使用依赖项的方式非常不同。对于 Boost 等知名库,CMake 包含用于包含 header 和链接库的脚本。

最小 CMakeLists.txt

一个最小的例子可能是这样的:

find_package(Eigen3 REQUIRED)
find_package(Boost REQUIRED COMPONENTS system)
add_executable(
app
src/main.cpp
)
target_include_directories(
app
${Eigen3_INCLUDE_DIRS}
${Boost_INCLUDE_DIR}
)
target_link_libraries(
app
${Boost_LIBRARIES}
)

示例项目

对于Eigen,没有find_package可以调用的预装脚本.这里有两个链接 Eigen 和 Boost 的真实示例项目:https://github.com/ompl/ompl/blob/master/CMakeLists.txt https://github.com/roboticslibrary/rl

这是一个 example for a find script for Eigen .

作为一个建议,一些 CMake 项目是复杂的并且使用旧的语法,较新的项目文件倾向于在命令中使用小写字母。

关于c++ - 从 Xcode 转换为 CMake,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38702137/

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