- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正尝试在我的 64 位英特尔机器上从源代码编译 linux 内核 0.0.1。只是为了填写引导和主要内容,我必须修改所有 makefile 以获得 32 位编译。
所以,这是 make 的输出:
In file included from traps.c:7:0:
../include/string.h:128:22: warning: conflicting types for built-in function ‘strchr’
extern inline char * strchr(const char * s,char c)
^
../include/string.h:145:22: warning: conflicting types for built-in function ‘strrchr’
extern inline char * strrchr(const char * s,char c)
^
../include/string.h:379:22: warning: conflicting types for built-in function ‘memchr’
extern inline void * memchr(const void * cs,char c,int count)
^
../include/string.h:395:22: warning: conflicting types for built-in function ‘memset’
extern inline void * memset(void * s,char c,int count)
^
In file included from traps.c:11:0:
../include/linux/kernel.h:5:1: warning: function return types not compatible due to ‘volatile’
volatile void panic(const char * str);
^
../include/linux/kernel.h:5:1: warning: function return types not compatible due to ‘volatile’
../include/linux/kernel.h:5:1: warning: function return types not compatible due to ‘volatile’
In file included from traps.c:7:0:
../include/string.h: In function ‘strcpy’:
../include/string.h:29:1: error: ‘asm’ operand has impossible constraints
__asm__("cld\n"
^
Makefile:24: set di istruzioni per l'obiettivo "traps.o" non riuscito
string.h部分代码如下:
extern inline char * strcpy(char * dest,const char *src)
{
__asm__("cld\n"
"1:\tlodsb\n\t"
"stosb\n\t"
"testb %%al,%%al\n\t"
"jne 1b"
::"S" (src),"D" (dest):"si","di","ax");
return dest;
}
我不知道为什么原始代码无法编译。到现在我已经成功编译:boot 和 init subdir。
非常感谢
最佳答案
我认为问题在于寄存器破坏列表与输入重叠。
即 "S"
代表寄存器 esi
而 "D"
代表寄存器 edi
;但是 clobber 列表包含 "si"
和 "di"
,它们是这些寄存器的低 16 位部分。也许旧的 GCC 版本忽略了这一点,但新版本不允许重叠。
来自docs here :
Clobber descriptions may not in any way overlap with an input or output operand.
解决方法,将它们从列表中移除即可:
...
::"S" (src),"D" (dest) :"ax", "cc");
顺便说一句,我还向 "cc"
添加了 clobber,因为该程序集修改了 e
标志。
关于编译 linux 0.0.1 => 错误 : ‘asm’ operand has impossible constraints __asm__ ("cld\n",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43898963/
我看过代码 procedure FillDWord(var Dest; Count, What: dword); assembler ; asm PUSH EDI MOV EDI, Des
我正在尝试将这些代码应用于 https://rcompanion.org/rcompanion/d_08.html 我的问题 library(multcompView) > library(lsmea
我正在尝试将这些代码应用于 https://rcompanion.org/rcompanion/d_08.html 我的问题 library(multcompView) > library(lsmea
我一直在努力根据 p 值的成对比较表来制作我自己的 CLD。我知道 multcomp 是可能的,但我想生成我自己的 DIY 函数,它可以适应不同的事后输出。当然,有两个具有挑战性的方面:组生成背后的逻
我正在尝试安装 CLD package在我的笔记本中,但在编译中不断收到错误。 关于我的安装的一些基本信息: OS: Win 7 Professional (64bit) Visual Studio:
我收集了 216 个人的数据。我测量了每个人体内相同的 7 种物质的浓度,用 Sub1:Sub7 表示。这些物质的浓度在不同地点的个体中可能不同。我对这些个体可以根据这些物质的浓度进行分组的细化程度感
嗯,我知道 CLD 清除方向标志,STD 设置方向标志。但是设置和清除方向标志有什么意义呢? 最佳答案 方向标志用于影响字符串指令偏移指针寄存器的方向。这些是可以使用的相同指令 with the RE
我正尝试在我的 64 位英特尔机器上从源代码编译 linux 内核 0.0.1。只是为了填写引导和主要内容,我必须修改所有 makefile 以获得 32 位编译。 所以,这是 make 的输出: I
我是一名优秀的程序员,十分优秀!