Xamarin.ios “未定义”___divmodsi4“;在发布模式下将Monotouch项目与静态库链接 我有一个Monotouch项目,它连接到一个包含C++模块的静态库。 Monotouch版本:3.0.3.5 XCode版本:4.4.1 C/C++编译器:Apple LLVM 4.0

Xamarin.ios “未定义”___divmodsi4“;在发布模式下将Monotouch项目与静态库链接 我有一个Monotouch项目,它连接到一个包含C++模块的静态库。 Monotouch版本:3.0.3.5 XCode版本:4.4.1 C/C++编译器:Apple LLVM 4.0,xamarin.ios,linker-errors,Xamarin.ios,Linker Errors,在iOS模拟器和iOS设备的调试模式下构建项目时,一切正常- 应用程序已链接并运行。 但是,在为iOS设备构建版本配置时,会出现以下错误: Undefined symbols for architecture armv7: "___divmodsi4" 静态库代码中的以下行不知何故导致了故障: int number_of_buckets = num_samples / window_samples_step; 如果该行修改如下,则问题消失: int number_of_buckets

在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);
你有没有办法在不做上述修改的情况下解决这个问题

谢谢,
Ury.

这发生在构建结束时,通常取决于它的原始参数。尝试比较版本调试版本之间的选项,并检查:

  • 您在两种配置上使用相同的附加mtouch参数

  • 您在两种配置上使用相同的编译器,Mono AOT与LLVM编译器

  • 您在两种配置上使用相同的体系结构,ARMv6与ARMv7

否则,为调试发布构建附加完整构建日志(从MonoDevelop的错误板的构建输出


为了更有帮助,请在重新构建之前,将“-v-v-v”添加到其他mtouch参数中。这将增加每个步骤的详细信息。

您需要将应用程序的部署目标(在项目的“选项”中的“构建/iPhone应用程序”页面)至少设置为5.0。

除了必要的更改(版本与调试)外,其他mtouch参数是相同的。两种配置都使用相同的编译器LLVM,ARMv7是这两种配置的体系结构。我将生成输出放入<>谢谢,Ury。我无法访问该URL(请求凭据)。请用数据填写错误报告。我希望它已修复。请重试。要诊断此类问题,需要调试(工作)和发布(不工作)日志。我输入了所有4种配置。发布/调试和Iphone/Iphone模拟器。其中只有发布版iPhoneSimulator配置有链接错误,谢谢。