CMake OSX命令行与GUI的差异
CMake OSX Command line vs GUI Differences
我正在尝试将项目Theia SfM配置为在Mac上使用XCode进行编译。
https://github.com/sweeneychris/TheiaSfM
使用通过XCode通过Macports安装的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明显安装在/opt/local/bin中(通过macports)。
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更快。
为什么相同版本的CMake找不到相同的包,有什么明显的原因吗?
不同的安装方式可能会导致默认搜索路径的设置不同。您可以将CMAKE_PREFIX_PATH
变量设置为/opt/local
,您的所有包都会在那里找到。
我假设/opt/local在我的CMake GUI路径搜索路径中,因为它在那里找到了其他依赖项。
不完全正确。
对于搜索Google Flags,您的项目(Theia SfM)使用附带的脚本FindGFlags.cmake,该脚本明确地在/opt/local
处搜索包(请参阅变量GFLAGS_CHECK_INCLUDE_DIRS
的定义和用法)。
对于搜索ImageMagic,它使用标准的CMake脚本,该脚本不会明确搜索/opt/local
。
- OSX MetalKit CVMetalTextureCacheCreateTextureFromImage失败,状态:
- C++GTKMM gui循环依赖关系
- QTcpSocket在不阻塞GUI的情况下重新连接到服务器
- 我的程序有一个保存配置文件的GUI,如何双击此配置文件以直接加载带有配置数据的GUI?
- OSX蓝牙打开RFCOMMChannelAsync声称已连接,但未建立连接,并且从未调用过委托
- 在哪里放置我的函数?进入我的母语 Gui 还是进入我的演示者?
- 在OSX上使用CMake将Adobe的XMP工具包构建为共享库的最简单方法是什么?
- C ++是否有C ++ 17 OSX 10.13.6的标志
- 如何在带有 gdb GUI 前端的 ARM gdbserver 的 PC 上执行远程 gdb 会话?
- 各种版本的 Mac OSX 向后兼容性如何?(Xcode C++
- 在 Gui Win32 中创建子窗口C++
- 如何防止 std::thread 在 QT 中冻结 GUI?
- OSX clang++:用于 cpp 文件中显式实例化模板的体系结构x86_64的未定义符号
- 调试控制台 ChessEngine.exe "used"在另一个应用程序(国际象棋 GUI)中
- 更改 Windows GUI 中静态文本框的字体大小
- 我不知道如何使用代码块win32 gui
- 什么是一个为osx制作C++GUI的好程序
- CMake OSX命令行与GUI的差异
- 与OsX相比,Windows上的GUI加载问题
- Windows/osx/ipad 上的跨平台 GUI