我在Mac OSX 10.7上,但我相信这也会出现在10.8 +
中尝试运行(在erlang内)
wx:demo().
将产生以下输出:
beam.smp [2733:f0b] CFURLCreateWithString传递了这个无效的URL字符串:'/System/Library/CoreServices/CommonCocoaPanels.bundle'(文件系统路径而不是URL字符串)。创建的URL不适用于大多数文件URL功能。应该使用CFURLCreateWithFileSystemPath或CFURLCreateWithFileSystemPathRelativeToBase。
现在演示运行得很好,但为什么输出这一行呢?
它没有提及erlang,经过一些浏览之后,似乎这是一个wxWidgets错误,因为人们在python中遇到同样的问题,并且由于输出中的CommonCocoaPanels.bundle而导致Mac OSX为中心。
现在真的只是烦恼,因为一切运行得很好。但它很可能是一个错误,不是吗?
如何解决?
答案 0 :(得分:0)
据我所知,wxErlang目前在MacOS上被破坏,维护者承诺在wxWidgets 3.0发布后修复它。
答案 1 :(得分:0)
您使用的是wxWidgets
的哪个版本?我在wxWidgets 2.8.12
下使用Mac OS 10.6.8
,使用Carbon
-arch i386
进行自定义构建。
在wxWidgets 2.8.x中,Carbon是推荐的库,因为它是 更稳定。可可在wxWidgets 2.8.x中不完整。如果你感兴趣 在使用Cocoa时,你应该从可可的wxWidgets 2.9.x开始 更完整。
框架本身看起来与Max OS不同(可能是因为Carbon),API的一小部分被破坏了(这并不妨碍程序实际运行 - 只是小麻烦)。
答案 2 :(得分:0)
供我将来参考,以及其他人参考..
以下操作不会显示上述错误消息。
P = wx:new(), F = wxFrame:new(P, 1, "main", [{size, {600,600}]), WindowOpts = [{size, {600,600}}, {style, ?wxSUNKEN_BORDER}], W = wxWindow:new(F, ?wxID_ANY, WindowOpts), wxFrame:connect(F, close_window, [{skip,true}]), wxWindow:connect(W, paint, [{skip, true}]), wxFrame:show(F), wxFrame:centre(F).
奇怪的是,即使我的所有试验和错误调试,一行一行,实际上没有简单的方法来达到它的底部。结果是包含了:
process_flag(trap_errors,true)
会产生该错误。我很肯定没有任何崩溃可以调用旗帜的行动。
深度错误。没什么后果。
让我们希望他们在3.0升级的同时修复它。