0

我在交叉编译一些包含 sse 指令的 c++ 源代码时遇到问题。我设法为模拟器编译它们(没有额外的 c++ 标志),但对于 armv7 我得到以下错误:

#error "SSE instruction set not enabled"
( and following other errors such as:
... unknown type name '__m128'
)

我查看了 clang flags 的标志来激活 sse 指令,但没有找到

(我要编译的源文件是 gdal 项目中的 gdalgrid.cpp, http ://fossies.org/dox/gdal-1.10.1/gdalgrid_8cpp_source.html )

提前谢谢

4

1 回答 1

0

类似的问题;试图在 ARM7 硬件上编译“制作”一个山寨币钱包应用程序,gcc 编译器用

/usr/share/gccxml-0.9/GCC/4.7/xmmintrin.h:32:3: error: #error "SSE instruction 
set not enabled"
src/scrypt_mine.cpp: In function ‘void* scrypt_buffer_alloc()’:
src/scrypt_mine.cpp:66:19: error: ‘SCRYPT_BUFFER_SIZE’ was not declared in this scope
src/scrypt_mine.cpp: In function ‘void scrypt(const void*, size_t, uint32_t*, void*)’:
src/scrypt_mine.cpp:87:21: error: ‘scrypt_core’ was not declared in this scope
Makefile:1909: recipe for target 'build/scrypt_mine.o' failed
make: *** [build/scrypt_mine.o] Error 1

我认为正在发生的事情是,scrypt 的某些实现完全依赖于一个品牌的 cpu 上的 sse 指令,以至于它们不会为另一个品牌编译。

现在该解决方案需要莱特币人员提供更好的答案,因为我的工作仅适用于比特币和其他 sha256d 硬币:抛弃任何基于 scrypt 的硬币,因为这些硬币仅限于特定品牌的 sse 处理器。编译基于 sha256d 的硬币,因为它们更便携,钱包可以在 ARM7 设备上工作,包括树莓派。

于 2015-08-05T15:38:18.230 回答