【问题标题】:getting ERROR C4013 - __readcr() undefined; assuming extern returning int得到错误 C4013 - __readcr() 未定义;假设 extern 返回 int
【发布时间】:2019-02-09 11:56:44
【问题描述】:

我正在尝试编译驱动程序,但出现以下错误:

Error   C2220   warning treated as error - no 'object' file generated
Error   C4013   '__writecr0' undefined; assuming extern returning int
Error   C4013   '__readcr0' undefined; assuming extern returning int

我也包含了intrin.h,解决平台是ARM64

UINT64 cr0 = __readcr0();
__writecr0( cr0 & 
*(PUSHORT)place = 
*(PULONG)(place + 2) = 
*(PVOID**)(place + 6) = 
__writecr0( cr0 );

【问题讨论】:

  • @Werner Henze 这不是一个未定义的外部符号,而是一个缺失的声明——内在函数头可能有 ifdef 只公开 x86 和 x86-64 构建目标的函数

标签: c++ c visual-c++


【解决方案1】:

docs 表示内部函数仅适用于 x86 和 x86-64,甚至仅在内核模式下可用。因此它不适用于 ARM64 交叉编译。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-08
    • 2017-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-17
    • 1970-01-01
    • 2014-02-17
    相关资源
    最近更新 更多