導航:首頁 > 源碼編譯 > 重新編譯

重新編譯

發布時間:2022-02-01 23:33:09

㈠ make會把所有的代碼都重新編譯

make程序實際上是對makefile文件進行解析和執行。
需要編譯的文件,引用的頭文件,庫等都需要在makefile文件中進行標識。
make程序會根據makefile的內容進行編譯。

所以make並不一定編譯所有的代碼。需要查看makefile文件中定義了哪些文件需要進行編譯。

㈡ 如何重新編譯linux內核

  1. 因為一般電腦安裝的系統都是Windows,而整個編譯過程都需要在Linux環境下實現,所以最好是在虛擬機里安裝Linux系統來完成這一過程。我使用的虛擬機是VMware-workstation-full-v7.1.4。

  2. 然後,我們需要下載一個較高版本的Linux系統的鏡像文件,安裝在虛擬機上,作為編譯環境。我使用的是ubuntu-11.04-desktop-i386。之所以選擇較高版本,是因為它的界面比較方便用戶操作。

  3. 然後下載一個Linux內核源代碼文件,將它保存到虛擬機上新安裝的系統中去。並解壓到/usr/src目錄。我使用的是linux-2.6.36,下載低版本的原因是,小巧輕便,易於編譯。

    解壓命令如下:

    bzip2 -d linux-2.6.36.tar.bz2

    tar -xvf linux-2.6.36.ta

  4. 修改/usr/src/linux-2.6.36/kernel/sys.c文件,在文件末尾增加一個系統調用函數。自行編寫一個簡單的程序即可,只為測試用。

  5. 修改/usr/src/linux-2.6.36/arch/x86/kernel/syscall_table_32.S,為新添加的程序配置系統調用號。

  6. 在/usr/src/linux-2.6.36/arch/x86/include/asm/unistd_32.h中配置系統調用表。

  7. 下面就是最重要的內核編譯與安裝:

    首先配置編譯信息,使其生成適合當前機器的Makefile,輸入make oldconf ig。

    接著還要輸入make menuconfig,在字元界面下進行必要的細微的修改。

    然後要經過四步編譯過程(直接輸入命令即可):

    (1)make bzImage

    將內核編譯為壓縮映像,存儲在源碼根目錄下的「System.map」文件中。

    (2)make moles

    編譯各個模塊。

    (3)sudo make moles_install

    安裝模塊

    (4)sudo make install

    安裝內核

    第(2)(3)步等待時間較長,可能需要數個小時,請耐心等待。

    無報錯的話重啟進入GRUB界面,就可以看到新編譯的內核了。

  8. 按回車鍵進入我們編譯的目標內核中,用關鍵詞搜索查看新增加的系統調用「my call」是否已在內核中:

  9. 編寫測試程序,調用新添加的系統調用:

  10. 測試成功,說明系統調用添加成功,進而說明內核編譯成功!

    以上的辦法你可以試一下,希望對你有所幫助。

㈢ 為什麼我每次編譯都是全部重新編譯

這里以 C 語言源程序為例,關於多個 C 語言源程序之間的編譯順序問題,這個是需要在 MAKEFILE 文本文件中寫好多個 C 語言源程序的先後順序,如果多個 C 語言源程序的先後順序寫得不正確,那麼在使用 make 命令對 MAKEFILE 做相關的編譯、鏈接工作時,就會把所有的 C 源程序都重新編譯一遍(按理說:MAKEFILE 的最大好處就是:如果整個軟體系統由多個 C 源程序組成,但是只有其中一個 C 源程序的代碼做了改動,而其他的源代碼沒有做過任何改動,那麼只需要編譯這一個 C 源程序的目標文件,然後再和別的 C 源程序的目標文件相鏈接,生成最終的可執行文件即可,而不需要整個都重新編譯一遍)
你再仔細把你的 MAKEFILE 文件中的各個 C 源程序的先後次序檢查一下,看看是否寫得有錯誤。寫 MAKEFILE 文件也是需要仔細推敲的。

㈣ oracle資料庫開發人員說『需要重新編譯一下』是什麼意思 是說要重新跑某個過程嗎

重新編譯,就是某個過程或者函數哪裡做了修改 需要重新編譯成可以執行的文件,並不是說重新跑某個過程。編譯完成之後,把編譯好了的過程再重新運行。

㈤ 如何將解壓後的exe文件重新編譯

這是一個自解壓文件,用一般的壓縮軟體就可以重新打包了

㈥ make 重新編譯

make clean先

㈦ eclipse 項目中 怎麼重新編譯整個工程

1、點擊選擇號重新編譯的項目,如下圖所示:

㈧ Eclipse怎樣重新編譯

第一種方法:
1、在您要重新編譯的項目上,點擊滑鼠右鍵。
2、選擇【source】下的【clean up】選項。
3、可以點擊【Next】按鈕進入到下一步,也可以直接點擊【Finish】按鈕進行編譯。
4、點擊【Next】按鈕後,顯示出您最近修改過的代碼,並且提示修改前後的區別。點擊【Finish】按鈕,進行重新編譯。
第二種方法(編譯多個項目):
1、選擇菜單欄【Project】->【Clean】選項。
2、
(1)根據需要選擇
【Clean all projects】重新編譯所有項目。
【Clean projects seleted below】重新編譯下方選擇的項目。
(2)點擊【OK】按鈕進行編譯。

java class怎麼重新編譯

方法如下: 點擊菜單-Project-Build Automatically,這個勾選上。 Build Automatically 的意思是自動編譯,選擇的功能就是,你在修改代碼保存的時候,就編譯了。 點擊菜單-Project-Build All或Build Project。

㈩ 怎麼重新編譯android 下面的動態庫

使用動態庫來編譯動態庫

A項目的android.mk文件如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := testa
LOCAL_SRC_FILES := testa.c
include $(BUILD_SHARED_LIBRARY)

生成的libtesta.so加入到E:\workspace\android-ndk-r8e\platforms\android-8\arch-arm\usr\lib\下面

項目B的文件目錄結構如下:
jni
jni/jni/
jni/prebuilt/
jni目錄下的mk文件如下:
include $(all-subdir-makefiles)

jni/prebuilt目錄下的mk文件如下:
LOCAL_PATH := $(call my-dir)

#include $(CLEAR_VARS)
LOCAL_MODULE := libtesta
LOCAL_SRC_FILES := libtesta.so
include $(PREBUILT_SHARED_LIBRARY)

同時把libtesta.so也放入該目錄下.

jni/jni目錄下的mk文件內容:
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_LDLIBS := -ltesta

LOCAL_MODULE := testb
LOCAL_SRC_FILES := testb.c

include $(BUILD_SHARED_LIBRARY)

這樣生成libtestb.so文件, 同時eclipse在打包時會把libtesta.so, libtestb.so都加入到apk文件中,如果沒有prebuilt那一步,那麼在打包時會漏掉libtesta.so, 但編譯會通過,因為編譯讀取的是編譯系統的庫文件目錄(LOCAL_LDLIBS := -ltesta), 這點需要注意
java代碼:
System.loadLibrary("testa");

System.loadLibrary("testb");

注意先後關系

閱讀全文

與重新編譯相關的資料

熱點內容
醜陋的中國人pdf 瀏覽:717
我的世界如何在伺服器裡面裝模組 瀏覽:622
javaweb進銷存源碼下載 瀏覽:555
單片機遙控門鈴設計圖解 瀏覽:322
閃送app怎麼更改照片 瀏覽:158
公司的程序員開始忙了 瀏覽:504
統信系統命令行如何輸漢字 瀏覽:279
java隨機取數組 瀏覽:476
伺服器匆忙什麼意思 瀏覽:779
windows下載文件命令 瀏覽:100
紹興加密防偽技術 瀏覽:53
linux清除緩存的命令 瀏覽:778
樑柱連接處梁的加密箍筋 瀏覽:102
安卓錄屏大師如何彈出 瀏覽:658
cad命令詳解 瀏覽:173
品牌雲伺服器提供商 瀏覽:326
加密投資者的心理 瀏覽:700
小米無命令 瀏覽:826
不要層層等命令 瀏覽:373
4k播放器怎樣設置源碼 瀏覽:955