CorePlot MonoMac 绑定崩溃

2023-12-06

我正在尝试使用 Monomac 的 CorePlot 0.9 绑定,但这似乎是一项艰巨的任务。 monotouch 示例的构建和运行没有任何问题,但我不需要那个。

由于绑定中仅存在 CorePlotiOS.dll,因此我必须自己为 osx 构建一个,但首先,不存在 bmake.exe,因此我必须先下载 monomac 源并自己构建它。然后我尝试构建 CorePlotOSX.dll,但这导致了一些编译问题。查看单触摸的构建脚本,我尝试使用这一行:

MONO_PATH=$(MONOMAC)/src mono $(MONOMAC)/src/bmac.exe -e -unsafe coreplot.cs -s=enums.cs -x=extras.cs -x=AssemblyInfo.cs  --sourceonly=list --tmpdir=osx -r:System.Drawing -r:MonoMac -lib:$(MONOMAC)/src -baselib:$(MONOMAC)/src/MonoMac.dll .

有什么问题吗?

我已将问题简化为:

graph = new CPTPieChart(); 
graph.Title = "Test";

分配似乎仍然存在,但每当我尝试访问该对象时,我就会崩溃:

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_PROTECTION_FAILURE at 0x00000000bf887fac

VM Regions Near 0xbf887fac:
    Stack                  00000000b038d000-00000000b040e000 [  516K] rw-/rwx SM=COW  
--> Stack                  00000000bc088000-00000000bf888000 [ 56.0M] ---/rwx SM=NUL  
    Stack                  00000000bf888000-00000000c0088000 [ 8192K] rw-/rwx SM=COW  

Application Specific Information:
objc[17645]: garbage collection is OFF

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.CoreFoundation        0x97c8aebc __CFStringEncodeByteStream + 12
1   com.apple.Foundation            0x9ac8ed49 -[NSString(NSStringOtherEncodings) getBytes:maxLength:usedLength:encoding:options:range:remainingRange:] + 263
2   com.apple.Foundation            0x9ac8e8ee bytesInEncoding + 213
3   com.apple.Foundation            0x9ac8e814 -[NSString(NSStringOtherEncodings) UTF8String] + 42
4   com.apple.CoreFoundation        0x97ce478c -[__NSCFString UTF8String] + 204
5   ???                             0x00f91208 0 + 16323080
6   ???                             0x030d708c 0 + 51212428
7   ???                             0x030d703c 0 + 51212348
8   ???                             0x016877d4 0 + 23623636

有任何想法吗?顺便说一句,正在运行 Mac OSX 10.7.5。


好吧,那很难。经过几天的 xcode 和 monomac 斗争,结果发现,原生 CorePlot 框架(动态库)没有加载。我不知道,我应该自己加载它(我是一个 monomac 新手,抱歉......但它不是很丑陋吗?它以这种方式默默地失败了?)

有两种方法可以做到这一点:

Dlfcn.dlopen ("CorePlot.framework/CorePlot", 2); // 2 = load now, 0 = lazy load

or [assembly:MonoMac.RequiredFramework("CorePlot.framework/CorePlot")]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CorePlot MonoMac 绑定崩溃 的相关文章

随机推荐

  • "yieldbreak;" 是什么意思?在 C# 中做什么?

    我在MSDN上看到过这样的语法 yield break 但我不知道它有什么作用 有人知道吗 它指定迭代器已结束 你可以想到yield break as a return不返回值的语句 例如 如果将函数定义为迭代器 则函数的主体可能如下所示
  • Nodejs 异步/等待 mysql 查询

    我有一个当前结构如下的nodejs项目 我需要在客户端表上插入一个注册表并从该表返回最后插入的ID 以便我可以在第二个表中使用它 但我需要等到插入完成客户表 然后将客户 ID 插入到我的第二个表中 我正在尝试使用 async await 但
  • useEffect 中无限循环

    我一直在使用 React 16 7 alpha 中的新钩子系统 当我处理的状态是对象或数组时 我会陷入 useEffect 中的无限循环 首先 我使用 useState 并使用一个空对象启动它 如下所示 const obj setObj u
  • ARIMA 产生的斜率直线

    我对使用 SARIMA 模型的时间序列很陌生 我按照教程构建模型并尝试预测未来趋势 一开始一切进展顺利 但当产生结果时 它显示斜率直线 我在 Jupyter NoteBook 上构建它 我首先检查了我的数据 并将数据可视化 但实际上 这似乎
  • 在实体框架中添加存储过程复杂类型

    我试图在实体框架中使用一个不返回任何内容的存储过程 我做了以下事情 添加了一个函数 右键单击存储过程 gt 添加 gt 函数导入 gt 复杂类型 gt 获取列信息 gt 创建新的复杂类型 我的函数名称 summarySP Result 构建
  • Android中如何删除progressBar中的文字?

    我的应用程序中有一个进度条 但它显示了一些默认文本 我想删除这些文本 请帮我如何删除文字 这是我的代码片段 ProgressDialog progDialog new ProgressDialog ProgressBarExample th
  • 使用perl查找连续两组括号的正则表达式是什么?

    我有带有不同括号的行 例如 sdfsfs sfdsfd sdfsfs sfdsfd sfdsfd sdfsfs sfdsfd sfdsfd sfdsfd sdfsfs sfdsfd sfdsfd sfdsfd sfdsfd sdfsfs s
  • 如何在 PHP 中将 number_format 的输出转换回数字?

    PHP无法识别1 200 00 由生成number format 但只有1200 00 这个问题的一般解决方案是什么 您可以删除任何不是数字或小数点的字符并使用floatval number 1200 00 parsed floatval
  • Grunt 任务:删除 HTML 文件中标记之间的行

    在开发中 我们测试未缩小的 css 文件 在构建时我们压缩并组合它们 我想然后删除未压缩的CSSlink前两个注释之间的元素 并取消注释link到生成的combined min css文件 有任何想法吗 Thanks 您没有提及您是如何进行
  • NSURLSession 的简历数据无效

    I use NSURLSessionConfiguration defaultSessionConfiguration 配置我的 url 会话 我通过调用暂停任务cancelByProducingResumeData 产生恢复数据 并将其保
  • 在 PHP 中将语言环境设置为 fr-FR 和数字格式

    我正在尝试创建我的网站之一的法语版本 我已经设定setlocale LC ALL fr FR 在我的页面顶部 并使用strftime我以法国风格正确显示日期 但是我在使用数字时遇到了一些问题 该页面的一部分使用我从 Web 服务获取的数据
  • 将 4 个原始字节转换为 32 位浮点数

    我正在尝试从 eeprom 重新构造 32 位浮点值 eeprom 存储器 0 4 中的 4 个字节是 B4 A2 91 4D PC VS Studio 将其正确重建为 3 054199 10 8 我知道应该在那里的浮点值 现在我正在移动这
  • 如何对 simplexml_load_file 进行错误检查?

    我正在使用 Tumbrl API 将一些帖子加载到我的主页上 我有以下电话 xml simplexml load file request url 有时它加载得很好 但有时我会得到以下输出 Warning simplexml load fi
  • hbase 和 hive 有什么区别? (Hadoop)

    根据我的理解 Hbase是Hadoop数据库 Hive是数据仓库 Hive 允许创建表并在其中存储数据 您还可以将现有的 HBase 表映射到 Hive 并对其进行操作 如果 hive 能做到这一切 为什么我们应该使用 hbase 我们可以
  • 尝试将第三个项目添加到过滤器时,“参数数据类型 ntext 对于上层函数的参数 1 无效”

    我一直在关注 ASP NET 网站上的 Contoso 大学教程 我正在尝试扩展我的技能 因此决定尝试向过滤器添加第三个选项 该教程提供 if String IsNullOrEmpty searchString students stude
  • 在 PHP 中用换行符替换文字字符串 \r\n 时出现问题

    我有一个包含文字字符串的文本文件 r n在里面 我想用实际的换行符 n 替换它 我知道正则表达式 r n 应该匹配它 我已经在Reggy 但我无法让它在 PHP 中工作 我尝试过以下变体 preg replace r n n line pr
  • 将参数传递给 boost::thread 没有重载函数需要 2 个参数

    从 boost thread 文档看来 我可以通过这样做将参数传递给线程函数 boost thread myThread new boost thread callbackFunc param 然而 当我这样做时 编译器抱怨说 没有重载函数
  • preg_match() 未知修饰符 '[' 帮助

    我有这个正则表达式来获取 YouTube 视频 ID lt v a zA Z0 9 lt 0 9 n lt v n 我从那里得到它 正则表达式解析 youtube yid 问题是我得到preg match Unknown modifier
  • OrientDB ETL 加载 CSV,其中顶点在一个文件中,边在另一个文件中

    我有一些数据位于 2 个 CSV 文件中 一个包含顶点 另一个文件包含另一个文件中的边 我正在研究如何使用 ETL 来设置它 已经接近但还没有完全实现 它基本上可以工作 但我的边缘有属性 我不确定它们是否正确加载 这个问题很有帮助 但我仍然
  • CorePlot MonoMac 绑定崩溃

    我正在尝试使用 Monomac 的 CorePlot 0 9 绑定 但这似乎是一项艰巨的任务 monotouch 示例的构建和运行没有任何问题 但我不需要那个 由于绑定中仅存在 CorePlotiOS dll 因此我必须自己为 osx 构建