在 OSX 上从源代码构建 GIMP 2.10 在"gimp-debug-tool-2.0"失败
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"上出错了。以下是输出日志:
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 框架以解析符号。
不幸的是,您在构建周期开始时运行的自动配置引用了CoreFoundation
框架,但这不是 NSString 或 NSWorkspace 实际存在的地方。
现在的解决方法是将其作为LDFLAGS环境变量的一部分:
-framework Foundation -framework AppKit
这将允许构建正确完成,但有点麻烦的解决方法。 正确的方法是修复自动配置,以便它首先正确引用这些框架,但这比我能管理的要复杂得多
事实证明,尽管有那个调试工具,但一切都应该工作得很好。我实际上并不需要它,所以我很高兴跳过构建它。我用 -k 标志运行了 make,它继续出错,幸运的是没有其他错误。构建并安装后,它可以在我的MacBook上运行良好。
OSX 上的 GIMP 2.10.1
- 可视化C++:发布模式的运行时库作为'Multi-threaded Debug DLL'
- LNK1104:无法打开libpjproject-i386-Win32-vc14-Debug-Static.lib
- 在 Boost::fiber 中引发的BOOST_ASSERT故障 Visual Studio "Debug" 构建
- 我在主函数的左括号上不断收到错误,消息为obj\Debug\main.o||在函数"ZN11linked_listC1Ev"中:|
- 流行"Debug Assertion Failed"
- 解决与构建"Debug x64"版本的暗网相关的错误
- Visual Studio Debug 只在一个线程中
- 在Visual Studio代码中定义DEBUG和RELEASE符号
- Visual Studio 2017中使用ifstream时,Release和Debug的输出不同
- 如何使用带有"--gcov tool"标志的lcov
- /usr/bin/ld: build-debug/obj/gpsitem.o: 文件无法识别: 文件被截断
- 如何绕过 << 调用,就好像"#ifndef DEBUG" c++ 中的宏一样?
- 如何在QT中使用DEBUG对齐日志文件中的数据?
- 在 OSX 上从源代码构建 GIMP 2.10 在"gimp-debug-tool-2.0"失败
- 检测到'DEBUG'的 Log4cpp 命名冲突。
- 在Visual Studio中,C++构建配置类型是Debug,Debug3D,DebugDLL4,DebugDLL9,
- 能够使用debug.assert()函数需要什么
- isalpha()?或其他.. Debug断言失败了,CircleMud游戏
- ISALPHA 导致 C++ "Debug Assertion Failed"
- 凯撒密码程序中"Debug Assertion Failed!"问题