我在交叉编译包含sse指令的一些c ++源代码时遇到问题。 我设法为模拟器编译它们(没有额外的c ++标志),但是对于armv7我得到以下错误:
#error "SSE instruction set not enabled"
( and following other errors such as:
... unknown type name '__m128'
)
我已查看clang标志以获取激活sse指令的标志,但未找到
(我正在尝试编译的源文件是项目gdal中的gdalgrid.cpp, http://fossies.org/dox/gdal-1.10.1/gdalgrid_8cpp_source.html )
事先提前答案 0 :(得分:0)
类似的问题;试图在ARM7硬件上编译'make'一个altcoin钱包应用程序,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指令,而这些指令不会为另一个品牌编译。
现在解决方案需要Litecoin人更好的答案,因为我的工作只适用于比特币和其他sha256d硬币: 抛弃任何基于scrypt的硬币,因为这些硬币仅限于特定品牌的cpu。编译基于sha256d的硬币,因为它们更便携,钱包可以在ARM7设备上工作,包括覆盆子pi。