调用虚拟内存编译时的error处理

以下两行代码在内核编译时报错。

pgd_t *pgd;

pgd = pgd_offset(current->mm, vaddr);

error如下:

error: implicit declaration of function ‘pgd_offset’

error: dereferencing pointer to incomplete type

错误解决方法:

pgd_offset宏定义报错,error: implicit declaration of function ‘pgd_offset’。

需要包含#include <asm/pgtable.h>头文件可以解决该问题。

current->mm行代码报错,error: dereferencing pointer to incomplete type。

需要包含#include <linux/sched.h>头文件可以解决该问题。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-10 20:07:34

调用虚拟内存编译时的error处理的相关文章

php安装编译时 configure: error: Cannot find OpenSSL&#39;s &lt;evp.h&gt;

=============================================== yum install error: protected multilib versions error===============================================sudo yum downgrade openssl 降级sudo yum install openssl-devel ===另外参考====================================

STM32初学Keil4编译时出现 Error:Failed to execute &#39;BIN40/Armcc&#39;

一种是在系统开始--运行里输入cmd,查看armcc状态.详情见推文: http://blog.csdn.net/hicui/article/details/7350805(笔记记录,请勿见怪) 都没有问题的话,那么可以尝试: 在keil里的菜单栏依次选择Project->Manage->Components,Environment andBooks(CEB)(或者直接点击工具栏的图标), 然后在CEB里选择Folders/Extensions标签页,在RealView Folder里选择ke

winpcap示例程序采用VC6编译时出错error C2054: expected &#39;(&#39; to follow &#39;_W64&#39;

e:\vehiclesecurity\wpdpack_4_1_2\include\pcap-stdinc.h(80) : error C2054: expected '(' to follow '_W64' e:\vehiclesecurity\wpdpack_4_1_2\include\pcap-stdinc.h(80) : error C2085: 'uintptr_t' : not in formal parameter list e:\vehiclesecurity\wpdpack_4_

在visual studio 2010+中调用ffmpeg编译时 报错error LNK xxxx: 模块对于 SAFESEH 映像是不安全的。

解决该错误的方法: 1.右键单击该项目选择“属性”. 2.在属性页中选择:配置选项->链接器->命令行. 3. 在命令行的“其他选项”中输入/SAFESEH:NO. 4.点击确定,从新编译即可通过.

升级到JDK8,编译时发生 Error:java: java.lang.ExceptionInInitializerError

编译的时候出现这个问题.使用1.7的jdk没问题,但是由于po主的项目中,使用了java8编写的代码,解决java8兼容问题成为解决这个问题的首选方案. 这个日志太过简单,只告知一个异常信息,这个异常发生的原因主要是由于静态类,静态变量初始化时发生了异常,po的项目是个很早的项目,静态类太多,无法直接定位异常信息到底是如何产生,控制台也没有输出堆栈,这给排查问题带来了极大的不便,第一个要解决的应该就是讲详细的堆栈信息输出,能方便的定位到问题的根源. 注意到第三条Infomation,Compli

【原创】QT:编译时出现 “error: error writing to -: Invalid argument”错误的解决

今天用QT5进行编译工程时,IDE的"问题"窗口提示 "error: error writing to -: Invalid argument". 上网一番搜索,也没有找到方案. 于是,想起伟大的毛主席说过的"自己动手,丰衣足食噻".对工程目录进行地毯式搜索后发现,工程目录下缺少编译中间文件存放目录:Release 和 Debug文件夹. 会不会是那个原因呢? 这时,我又想起某位伟人的一句话"实践是检验真理的唯一标准".试验一

《OpenGL编程指南第七版》学习——编译时提示“error C2381: “exit” : 重定义;__declspec(noreturn) 不同”错误的解决办法

解决办法一. #if defined(_WIN32) # ifndef GLUT_BUILDING_LIBextern _CRTIMP void __cdecl exit(int); 上面是glut.h中对exit的使用,意思是如果没有定义宏?GLUT_BUILDING_LIB,就使用它的exit,那我们就在项目的属性--预处理器 里定义这个宏,这样就不执行glut.h中的exit了,而只执行stdlib.h中的exit.这样也就不会冲突了.对了,还要在附加依赖项里手动加上?glut32.lib

解决办法:CMake编译时出现“error in configuration process project files may be invalid”

无论是CMake2.84 还是当前最新的CMake2.87都可能会出现这种错: 查遍国内外的网上都没有给出可行办法,结果还是自己解决了 现把出错原因和解决办法如下:出错原因:因是英文版本,通常安装没有看说明,按默认的安装而"下一步"再下一步,结果是在安装中要选择你所使用的编程系统的,如:Vs2008,vs2010等,如果当前安装的默认值不是你当前用的版本就且在使用时不注意一些细节就会出错,且出错在于当前设置的输出目录已存在时解决办法: 第一种:卸载并重装Cmake,重装时记得选择语言的

编译时类型与运行时类型

1.编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定. 当编译时类型和运行时类型不一致时,就会出现所谓的多态. 因为子类是一个特殊的父类,因此java允许把一个子类对象直接赋给一个父类的引用变量,无需任何类型转换(向上转型) 引用变量在编译阶段只能通过编译时类型所具有的方法,但运行时则执行它运行时类型所具有的方法.因此,编写java代码时,引用变量只能 调用声明该变量时所用类里包含的方法. 2.编写程序时,引用变量只能调用它编译时类型的方法,而不能调用运行时类型的方法