【发布时间】:2016-08-02 01:14:17
【问题描述】:
我正在尝试将项目 Theia-SfM 配置为在 Mac 上使用 XCode 进行编译。
https://github.com/sweeneychris/TheiaSfM
使用通过 Macports 通过 XCode 安装的 CMake 3.5.1,一旦安装了适当的依赖项,包就可以很好地配置和构建,例如
mkdir Build
cmake -G XCode ..
-- Generating done
-- Build files have been written to: /Users/alex/src/TheiaSfM/build
如果使用从 KitWare 下载并通过应用程序安装的 CMake GUI 3.5.1,相同的构建将无法找到 ImageMagick。输出结束:
-- Found SuiteSparse 4.2.1
-- Check for ImageMagick
ImageMagick_EXECUTABLE_DIRImageMagick_EXECUTABLE_DIR-NOTFOUND
CMake Error at /Applications/CMake.app/Contents/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
Could NOT find ImageMagick (missing: ImageMagick_convert_EXECUTABLE
ImageMagick_mogrify_EXECUTABLE ImageMagick_convert_EXECUTABLE
ImageMagick_mogrify_EXECUTABLE)
ImageMagick 已证明(通过 macports)安装在 /opt/local/bin 中。
Alexs-MacBook-Pro:TheiaSfM alex$ type -a mogrify
mogrify is /opt/local/bin/mogrify
是否有任何明显的原因导致相同版本的 CMake 无法找到相同的包?我假设 /opt/local 在我的 CMake GUI 路径搜索路径中,因为进一步向上它会在那里找到其他依赖项。
-- Found Google Flags: /opt/local/include in namespace: google
-- Check for Google Log
-- Found Google Logging: /opt/local/include
-- Check for Ceres
更一般地说,是否有 CMake USAGE 问题的活跃论坛?整个 CMAKE 似乎记录得很差,并且以无数令人困惑的方式失败。当大多数故障发生在构建具有许多依赖项的大型开源系统时,添加可执行文件和文件的简单示例对于理解这些中断是无用的。
此外,许多使用 CMake 的项目的支持水平较低,例如不是针对特定项目的问题和/或被放弃的论坛,感觉应该有一个公共论坛来讨论“我如何让 CMAKE 找到 xxxx 类型的问题”。
我不会介意生产力极低的感觉(本质上,为了获得可能会或可能不会编译、链接和/或随后在 32 位或 64 位代码中运行的解决方案,几天都在摆弄命令行),如果我是元构建系统的新手,但在与 Scons、NANT 和其他人作为游戏开发人员进行了 15 年的 C++ 元构建之后,我仍然不太坦率地确定 CMake 是否是一个精心制作的笑话。 OpenCV 和 Bullet 都是很好的项目示例,在这些项目中,只需将文件拖到您自己喜欢的 IDE 中并开始编译,比花几天时间在没有明显支持论坛的情况下搞乱 CMake 更快。
【问题讨论】:
标签: c++ xcode macos opencv cmake