C++ 在覆盆子上编译z3

C++ 在覆盆子上编译z3,c++,compilation,z3,C++,Compilation,Z3,如果这个问题不必要,首先让我道歉,但我对修改编译器和跨体系结构设计非常陌生 为了评估各种平台上的性能,我一直在尝试在raspberry pi 2上编译Z3 SMT解算器。然而,由于arm架构,似乎存在一个问题。到目前为止,我的意图是使用Mircrosoft Research提供的配置脚本,该脚本可以灵活地工作并产生以下结果: Testing ar... Testing g++... Testing gcc... Testing OpenMP... Host platform: Linux C+

如果这个问题不必要,首先让我道歉,但我对修改编译器和跨体系结构设计非常陌生

为了评估各种平台上的性能,我一直在尝试在raspberry pi 2上编译Z3 SMT解算器。然而,由于arm架构,似乎存在一个问题。到目前为止,我的意图是使用Mircrosoft Research提供的配置脚本,该脚本可以灵活地工作并产生以下结果:

Testing ar...
Testing g++...
Testing gcc...
Testing OpenMP...
Host platform:  Linux
C++ Compiler:   g++
C Compiler  :   gcc
Arithmetic:     internal
OpenMP:         True
Prefix:         /usr
64-bit:         False
Python version: 2.7
Writing build/Makefile
Copied Z3Py example 'example.py' to 'build'
Makefile was successfully generated.
  python packages dir: /usr/lib/python2.7/dist-packages
  compilation mode: Release
Type 'cd build; make' to build Z3
在建筑时,我首先遇到一个问题:

src/shell/install_tactic.cpp
cc1plus: error: unrecognized command line option '-mfpmath=sse'
cc1plus: error: unrecognized command line option 'u2018-msse'
cc1plus: error: unrecognized command line option 'u2018-msse2'
Makefile:3159: recipe for target 'shell/install_tactic.o' failed
make: *** [shell/install_tactic.o] Error 1
如果我正确理解了这个错误的含义,这些命令行选项指的是用于计算数学练习的聪明的统计,如果性能不是问题,则不需要这些选项。(简单地说,它应该仍然可以工作,即使速度较慢)。从相应的config.mk中删除标志,可以在一定程度上进行构建

成功生成大量结果文件后,make进程终止,出现以下错误:

src/util/hwf.cpp
../src/util/hwf.cpp:55:23: fatal error: emmintrin.h: Datei oder Verzeichnis nicht gefunden
compilation terminated.
Makefile:163: recipe for target 'util/hwf.o' failed
make: *** [util/hwf.o] Error 1
我现在的问题是,不使用emmintrin.h是否也可以编译(由于架构上的障碍,简单地将缺少的库复制到Pi是不可行的)。有人这样做过吗


提前感谢您的宝贵意见

hwf.cpp中不支持的选项和错误都指Z3中对浮点操作的支持。这些选项试图确保浮点单元设置正确,而hwf.cpp中的错误是因为我们试图获取浮点操作的硬件本质。本质上,这些变化的后果是,如果删除这些选项,某些浮点运算可能不精确;然而,Z3的很多部分都依赖于此,所以您不太可能在以后看到错误


我在家里有一个RPi,所以我今晚回家后会看看我们是否可以使用不同的选项。这可能是因为RPi根本没有浮点单元,在这种情况下,我将不得不将其切换到软浮点(我们也支持软浮点,但它可能会更慢)。

感谢@Christoph Wintersteiger的帮助以及您提供的检查您自己的RPi的好意。RPi本身提供硬件浮点支持。请看这里:谢谢你的链接,这帮了大忙!我现在已经为浮点硬件添加了配置检查,Z3不稳定应该至少在Raspbian上编译(至此:)。它确实可以运行编译器,但我还没有看到它到达链接器,它非常非常慢。再次感谢@ChristophWintersteiger。我真的很感谢你的帮助。正如您所建议的,使Z3不稳定会导致编译时msse标志没有任何错误。确实编译速度非常慢,但我尝试了一下。不幸的是,由于原始问题中提到的相同错误,
src/util/hwf.cpp../src/util/hwf.cpp:55:23:致命错误:emmintrin.h:Datei-order-Verzeichnis-nicht-gefunden编译终止。Makefile:163:目标'util/hwf.o'的配方生成失败:**[util/hwf.o]错误1
我假设Arm上没有类似emmintrin.h的存在。