我正在使用一周前编译的第三方库。
今天我又坐在办公 table 前,我又推了build,然后我的头就炸了。
我遇到了这个错误:
impossible constraint in 'asm'
代码是:
static inline unsigned ROLc(unsigned word, const int i)
{
asm ("roll %2,%0"
:"=r" (word)
:"0" (word),"I" (i));
return word;
}
一些神秘的事情发生了......我现在唯一想的是'WTF?'
板载 W32 XP 的 Intel CoreDuo 平台。
另外两个问题:
- 什么会破坏我的构建?
- 我想 asm 语法不正确,那么我该如何解决呢?
- 我在哪里可以找到“很酷”的 asm 引用(我的意思是一些 cpp 引用,比如纯处理器命令列表数据表/手册)
问候
更新:
哈哈,我觉得自己很笨,上周我安装了 strawberry perl...它在路径上安装并抛出 gcc,我的构建系统采用“默认”编译器....:D
但是我已经解决了这个问题:
return (word << i) | (word >> (32 - i));
最佳答案
关于c - 'asm' 中不可能的约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3652153/