我有一个Monotouch项目链接到一个包含C ++模块的静态库
Monotouch版本:3.0.3.5
XCode版本:4.4.1
C / C ++编译器:Apple LLVM 4.0
在iOS模拟器和iOS设备的调试模式下构建项目时一切正常 - 应用程序已链接并运行。 但是,在为iOS设备构建发布配置时,会出现以下错误:
Undefined symbols for architecture armv7: "___divmodsi4"
静态库代码中的以下行以某种方式导致了问题:
int number_of_buckets = num_samples / window_samples_step;
如果按如下方式修改此行,问题就会消失:
int number_of_buckets = (int)((float)num_samples / (float)window_samples_step);
如果没有上述修改,您对如何解决问题有任何想法吗?
谢谢, 乌瑞。
答案 0 :(得分:1)
这发生在构建结束附近,通常取决于它的原始参数。尝试比较发布和调试版本之间的选项,并检查:
您在两种配置上使用相同的其他mtouch参数;
您在两种配置上使用相同的编译器 Mono AOT与LLVM编译器;
您在两种配置上使用相同的架构 ARMv6与ARMv7 。
否则为附加(例如,优于bug report或者pastebin)完整构建日志(来自MonoDevelop的错误填充的构建输出) >调试和发布构建。
更有帮助的是在重新构建之前将“-v -v -v”添加到其他mtouch参数。这将增加关于每个步骤的详细程度(细节)。
答案 1 :(得分:1)
您需要将应用程序的部署目标(在项目选项中,Build / iPhone Application页面)设置为至少5.0。