希望你明白内核的作用(提供基础系统函数、接口和设备驱动),和启动后系统如何加载内核(一般是通过grub)之后再考虑自己编译内核。现在的电脑,自己编译内核并不能带来多少性能的优化。只是一个学习的过程而已。如果你是为了所谓优化,建议用你的时间去做其它更有意义的事情。如果是学习,则可以试试自己编译一下。
编译失败,找出原因,调整之后,重新编译即可。不会有什么严重后果,当然更不会导致正在使用的系统崩溃。
但是如果编译失败,*不要*强行安装,并重新启动,因为编译失败所产生的内核(如果有)是不能成功启动的。
整个编译过程都不会影响当前系统。是否影响或替换旧的内核,试你的发行版而定。严重推荐不要覆盖/删除原来的内核,让新旧内核都在grub的menu里面保留,这样万一新内核启动失败,可以很方便地使用旧内核来启动。
如果是第一次编译内核,建议身边有高人指点,或者在虚拟机上操作。这样会比较顺利和放心。
❷ 鐢佃剳涓阌栾鎸囦护鏄浠涔堟剰镐
阌栾鎸囦护鏄鎸囩数鑴戝湪镓ц岀▼搴忔垨镎崭綔镞讹纴鐢变簬镆愮嶅师锲犳棤娉曟g‘镓ц屾垨鐞呜В镄勬寚浠ゃ傝繖浜涢敊璇鎸囦护鍙鑳戒细瀵艰嚧绋嫔簭宕╂簝銆佹暟鎹涓㈠け鎴栫郴缁熶笉绋冲畾绛夐梾棰樸
阌栾鎸囦护阃氩父鏄鐢变互涓嫔嚑涓铡熷洜寮曡捣镄勶细
1. 璇娉曢敊璇锛氲繖鏄链甯歌佺殑阌栾鎸囦护绫诲瀷涔嬩竴銆傚傛灉绋嫔簭锻桦湪缂栧啓浠g爜镞朵笉灏忓绩鐘浜呜娉曢敊璇锛屾瘆濡傛嫾鍐欓敊璇銆佹嫭鍙蜂笉鍖归厤绛夛纴缂栬疟鍣ㄥ氨镞犳硶姝g‘瑙f瀽杩欎簺鎸囦护锛屽艰嚧缂栬疟澶辫触鎴栫▼搴忚繍琛屾椂宕╂簝銆
2. 阃昏緫阌栾锛氩嵆浣挎寚浠ょ殑璇娉曟槸姝g‘镄勶纴浣嗗傛灉瀹冧滑镄勯昏緫涓嶆g‘锛屼篃鍙鑳藉艰嚧绋嫔簭鍑虹幇阌栾銆备緥濡傦纴濡傛灉绋嫔簭涓镄勬煇涓寰鐜娌℃湁姝g‘镄勭粓姝㈡浔浠讹纴闾d箞瀹冨彲鑳戒细镞犻檺寰鐜涓嫔幓锛屽艰嚧绋嫔簭宕╂簝鎴栧崰鐢ㄨ繃澶氲祫婧愩
3. 纭浠堕梾棰桡细链夋椂鍊欙纴阌栾鎸囦护鍙鑳芥槸鐢变簬纭浠堕梾棰桦紩璧风殑銆备緥濡傦纴濡傛灉鐢佃剳镄勫唴瀛樻垨澶勭悊鍣ㄥ嚭鐜版晠闅滐纴闾d箞瀹冧滑鍙鑳芥棤娉曟g‘镓ц屾寚浠ゃ傛ゅ栵纴濡傛灉鐢佃剳镄勭数婧愪笉绋冲畾锛屼篃鍙鑳藉艰嚧鎸囦护镓ц屽嚭阌欍
涓轰简阆垮厤阌栾鎸囦护镄勫彂鐢燂纴绋嫔簭锻橀渶瑕佷粩缁嗘镆ヤ唬镰侊纴纭淇濊娉曞拰阃昏緫閮芥槸姝g‘镄勚傚悓镞讹纴浠栦滑杩橀渶瑕佸圭▼搴忚繘琛屽厖鍒嗙殑娴嬭瘯锛屼互渚垮彂鐜板苟淇澶嶅彲鑳藉瓨鍦ㄧ殑阌栾銆傛ゅ栵纴淇濇寔鐢佃剳纭浠剁殑镩濂界姸镐佷篃闱炲父閲嶈侊纴杩椤彲浠ョ‘淇濇寚浠よ兘澶熸g‘镓ц屻
涓句釜渚嫔瓙锛屽亣璁句竴涓绋嫔簭锻樻e湪缂栧啓涓涓璁$畻绋嫔簭锛屼粬闇瑕佽╃▼搴忚诲彇涓涓鏁板瓧骞跺皢鍏朵箻浠2銆傚傛灉绋嫔簭锻树笉灏忓绩灏嗕箻娉曟寚浠ゅ啓鎴愪简锷犳硶鎸囦护锛岄偅涔堢▼搴忓氨浼氭墽琛岄敊璇镄勬搷浣滐纴瀵艰嚧璁$畻缁撴灉涓嶆g‘銆傝繖灏辨槸涓涓鍏稿瀷镄勭敱浜庨昏緫阌栾瀵艰嚧镄勯敊璇鎸囦护銆备负浜嗛伩鍏嶈繖绉嶆儏鍐电殑鍙戠敓锛岀▼搴忓憳闇瑕佷粩缁嗘镆ヤ唬镰侊纴纭淇濇疮涓鎸囦护閮芥槸姝g‘镄勚傚悓镞讹纴浠栦滑杩橀渶瑕佸圭▼搴忚繘琛屾祴璇曪纴浠ヤ究鍙戠幇骞朵慨澶嶅彲鑳藉瓨鍦ㄧ殑阌栾銆
❸ c++中什么是语法错误,什么是编译错误
程序的错误主要分成三种:
编译链接错误;
编译链接错误又分成编译错和链接错。
编译错就是普通意义上的语法错,编译器进行语法检查不通过,也就是程序违背了计算机语言的语法,例如:括号不匹配、变量名拼写错误、用保留字定义变量名等;
链接错是指程序通过了语法检查,但是无法生成可执行文件,最常见的是链接找不到lib库。初学者有时写了函数的声明,但是缺少函数的定义,此时就会出现链接错。
运行错误;
运行错是程序可以执行,但是在执行过程中发生异常,提前退出程序。最常见的是指针越界,打开文件失败继续读取文件,总而言之是让计算机执行一些不能执行的语句。
逻辑错误
逻辑错是程序也能运行,就是结果不对,主要原因有:程序算法本身错误,程序和算法不同义等。
例如:新手经常将判断相等的==写成=赋值,往往就会导致逻辑错。
你的BD(int,int); 是一句函数调用?还是一句函数声明?
❹ 能解释下编译失败的原因吗
编译失败的原因有很多种。其中主要有以下一些类型:
(1)、用户编写的源程序中有语法错误。例如:未定义某一个变量就进行引用。这一类错误是最简单的,也是编译器最容易检查出来的,所以会产生对源程序的编译失败;
(2)、用户编写的源程序中有未对变量进行初始化就进行引用,也会导致程序运行错误。例如:用户虽然定义了一个指向某一个内存地址的指针变量,但是在使用前却未对它进行初始化,并进行任何判断,就往该指针指向的内存地址赋予了一个数值,这种情况在语法上编译器是检查不出来的,但是程序一旦运行起来,肯定就会出现错误了。在 WINDOWS 系统下一般是:指向XXXX的内存不能够为 Read (或者为 Write),要是在 UNIX/Linux 系统下就会发生 Core Dumped。
(3)、数组越界。这类错误也是编译器检查不出来的,但是一旦程序运行起来,程序的运行结果可能就是一个随机的结果。而不是用户需要得到的结果。
所以从编译的实质上说,以上情况都应该属于编译失败的类型。因为编译器并无法阻止这些错误的发生,而是让程序在运行时发生了各种各样的意想不到的运行结果。
❺ C语言编程时出现的那个expected怎么理解啊
C语言编程时编译失败后提示"expected"说明代码缺乏必要内容导致语法错误。
expected表示预期,期望。在C语言编译失败后的提示信息中出现时表示编译器无法通过编译,且根据其错误给出合理的建议。
此处可以发现编译器提示在花括号 '{' 前缺乏某些符号,可以帮助我们修改源代码,但需要注意的是编译器的判断可能出错,该提示信息仅代表源代码中存在错误培源改即可能原因!目前暂时无法准确标注出出错位置。
C语言程序开发流程如下:
扩展裂高资料
C语配判言出现的错误大致上可以分为两种,一种是语法错误,另一种是逻辑错误。
大部分语法错误将无法通过编译器编译,编译器会报错并给出提示,设计程序时可以根据编译器给出的提示检查源代码是否符合C语言的标准。
需要注意的是,不同版本的编译器支持的标准可能存在差异,特别在移植代码的过程中需要注意。
逻辑错误相对较难排除,主要是程序设计时由于逻辑不够严谨导致的程序运行错误或无法正常运行。排除逻辑错误需要进行调试,检查程序运行过程数据的变化和堆栈的变化,直到发现问题并解决问题。