Building GIMP 2.10 from source on OSX fails on “gimp-debug-tool-2.0”
我曾经试图在OSX上构建Gimp 2.10一周,但现在没有成功。大多数的问题都是不同的依赖关系等等。虽然花了很长时间,所有的问题都可以解决,但现在我觉得我走到了死胡同。我已经到了最后运行"make"的阶段,经过一段时间的构建,它在"gimp-debug-tool-2.0"上出错了。以下是输出日志:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Making all in app-tools CCLD gimp-debug-tool-2.0 Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_NSString", referenced from: objc-class-ref in libappwidgets.a(gimpcriticaldialog.o) "_OBJC_CLASS_$_NSWorkspace", referenced from: objc-class-ref in libappwidgets.a(gimpcriticaldialog.o) "_objc_autoreleasePoolPop", referenced from: _gimp_critical_dialog_response in libappwidgets.a(gimpcriticaldialog.o) "_objc_autoreleasePoolPush", referenced from: _gimp_critical_dialog_response in libappwidgets.a(gimpcriticaldialog.o) "_objc_msgSend", referenced from: _gimp_critical_dialog_response in libappwidgets.a(gimpcriticaldialog.o) ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[2]: *** [gimp-debug-tool-2.0] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 |
我在构建Qt、OpenCV应用程序时也遇到过类似的错误。存在的问题是缺少库,我通过提供到这些库的路径解决了这个问题。但是在构建"gimp-debug-tool-2.0"时可能会缺少什么,这似乎是内部工具。
如果有人有任何类似的经验,或有任何线索/提示,我如何解决这个问题,并能指出我的正确方向,这将是非常感谢。
坦克提前。
根本原因是gimp-debug-tool-2.0是一个新的模块,它与OS X操作系统集成,在应用程序发生故障时提供一个对话框。它引用的nsstring和nsworkspace类是OS X的一部分。因此,您需要根据相应的OS X框架链接来解析符号。
不幸的是,在构建周期开始时运行的自动配置引用了
现在的解决方法是将其作为ldflags环境变量的一部分包括在内:
这将允许构建正确完成,但有点矫揉造作。正确的方法是修复自动配置,以便它首先正确地引用这些框架,但这比我能管理的要复杂得多。
事实证明,尽管使用了那个调试工具,所有的工作都应该正常。我实际上并不需要它,所以我很高兴跳过了建造它。我运行了make with-k标志,它继续出错,幸运的是没有其他错误。在构建和安装之后,它在我的MacBook上运行得很好。
OSX上的GIMP 2.10.1