當前位置:首頁 » 編程軟體 » 源碼構建編譯

源碼構建編譯

發布時間: 2023-01-30 08:05:59

1. 如何編譯 netty 源碼並導入android studio

思路一:下載源碼,自己下載依賴lib,構建編譯環境,成功;
1. 從maven 地址下載,一般關心下面紅色的3個,帶sources的肯定就是源碼了,但是裡面沒有相關依賴關系,這個可以看 .pom 文件;
將sources.jar 變為zip 文件,解壓出來;
在你項目的 androidstudio project 中新建一個 java library;命名為 nettylib-4.0.14
將2中源碼文件io/netty/ 拷貝到src/main/Java/ 目錄下
studio sync,編譯看報錯的地方,或者根據 1 中地址裡面的 pom 文件,找到netty 編譯需要依賴的第三方 jar
依賴jar 查詢地址: http://www.findjar.com/index.x?
最後nettylib-4.0.14 中的 build.gradle 配置如下:

其中會遇到不少問題,我搞了很久,因為走了些彎路,如上圖,我直接貼出來配置了,但是仍然有少數的文件會報錯,因為和項目無關,所有直接刪掉啦;
編譯可能會遇到各種錯誤,我就不一一貼出來了,大家有問題,請留言;
思路二:在github上下載源碼,並且按照其設置來配置編譯環境
git 源碼地址:https://github.com/netty/netty/tree/netty-4.0.14.Final
編譯環境搭建:http://netty.io/wiki/setting-up-development-environment.html
主要有eclipse +maven 和使用IDEA
1. 使用eclipse +maven,比較容易報錯,因為eclipse 和maven 可能有不兼容的情況;
建議使用前最好,進入netty下載目錄,
1。mvn install 在本地Repository中安裝jar
2。mvn eclipse:eclipse 生成eclipse項目
然後就多了 .classpath 和 .project,可以直接導入eclipse
我2種都試過啦,eclipse 報錯比較難搞定,最後使用的是IDEA;
直接以maven 工程導入就行了,導入後,編譯也ok

2. 源碼怎麼編譯

使用編譯器如VC++6.0,VC++2008

3. 自己可以編譯安卓源碼嗎

用最新的Ubuntu 16.04,請首先確保自己已經安裝了Git.沒安裝的同學可以通過以下命令進行安裝:

sudo apt-get install git git config –global user.email 「[email protected]」 git config –global user.name 「test」

其中[email protected]為你自己的郵箱.

簡要說明

android源碼編譯的四個流程:1.源碼下載;2.構建編譯環境;3.編譯源碼;4運行.下文也將按照該流程講述.

源碼下載

由於某牆的原因,這里我們採用國內的鏡像源進行下載.
目前,可用的鏡像源一般是科大和清華的,具體使用差不多,這里我選擇清華大學鏡像進行說明.(參考:科大源,清華源)

repo工具下載及安裝

通過執行以下命令實現repo工具的下載和安裝

mkdir ~/binPATH=~/bin:$PATHcurl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repochmod a+x ~/bin/repo

補充說明
這里,我來簡單的介紹下repo工具,我們知道AOSP項目由不同的子項目組成,為了方便進行管理,Google採用Git對AOSP項目進行多倉庫管理.在聊repo工具之前,我先帶你來聊聊多倉庫項目:

我們有個非常龐大的項目Pre,該項目由很多個子項目R1,R2,...Rn等組成,為了方便管理和協同開發,我們為每個子項目創立自己的倉庫,整個項目的結構如下:


這里寫圖片描述

執行完該命令後,再使用make命令繼續編譯.某些情況下,當你執行jack-admin kill-server時可能提示你命令不存在,此時去你去out/host/linux-x86/bin/目錄下會發現不存在jack-admin文件.如果我是你,我就會重新repo sync下,然後從頭來過.

錯誤三:使用emulator時,虛擬機停在黑屏界面,點擊無任何響應.此時,可能是kerner內核問題,解決方法如下:
執行如下命令:

  • ./out/host/linux-x86/bin/emulator -partition-size 1024 -kernel ./prebuilts/qemu-kernel/arm/kernel-qemu-armv7

  • 通過使用kernel-qemu-armv7內核 解決模擬器等待黑屏問題.而-partition-size 1024 則是解決警告: system partion siez adjusted to match image file (163 MB >66 MB)

    如果你一開始編譯的版本是aosp_arm-eng,使用上述命令仍然不能解決等待黑屏問題時,不妨編譯aosp_arm64-eng試試.

    結束吧

    到現在為止,你已經了解了整個android編譯的流程.除此之外,我也簡單的說明android源碼的多倉庫管理機制.下面,不妨自己動手嘗試一下.

    4. 怎樣從源碼編譯rom

    本帖最後由 pigjohn 於 2014-2-10 20:24 編輯

    一、你需要:
    1.linux系統環境
    教程使用ubuntu 12.04(LTS)
    硬碟安裝或虛擬機安裝應該都ok。
    2.電腦配置不要太差
    二、搭建編譯環境:
    1.java安裝配置
    1) 刪除舊版本java
    ctrl+alt+t 打開終端。
    sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\*

    sudo apt-get purge sun-java
    復制代碼
    2) 安裝java 1.6
    添加軟體源,打開終端輸入
    sudo add-apt-repository ppa:webupd8team/java
    復制代碼
    下載安裝,打開終端輸入
    sudo apt-get update && sudo apt-get install oracle-java6-installer
    復制代碼
    跟隨屏幕提示,你需要接受使用條款。
    安裝完成後,終端輸入java -version,你會看到java版本信息。類似
    java version 「1.6.0_37″

    Java(TM) SE Runtime Environment (build 1.6.0_37-b06)

    Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01, mixed mode)
    復制代碼
    2.安裝依賴軟體
    sudo apt-get install git-core gnupg flex bison gperf build-essential \

    zip curl zlib1g-dev zlib1g-dev:i386 libc6-dev lib32ncurses5-dev \

    ia32-libs x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 \

    lib32z-dev libgl1-mesa-dev g++-multilib mingw32 \

    tofrodos python-markdown libxml2-utils xsltproc readline-common \

    libreadline6-dev libreadline6 lib32readline-gplv2-dev libncurses5-dev \

    lib32readline5 lib32readline6 libreadline-dev libreadline6-dev:i386 \

    libreadline6:i386 bzip2 libbz2-dev libbz2-1.0 libghc-bzlib-dev lib32bz2-dev \

    libsdl1.2-dev libesd0-dev squashfs-tools pngcrush schedtool libwxgtk2.6-dev
    復制代碼
    等待安裝配置完成
    sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
    復制代碼
    三、源碼下載
    1.repo腳本下載
    $ mkdir ~/bin

    $ PATH=~/bin:$PATH

    $ curl [url]https://dl-ssl.google.com/dl/googlesource/git-repo/repo[/url] > ~/bin/repo

    $ chmod a+x ~/bin/repo
    復制代碼
    2.初始化repo同步
    mkdir ~/cm11

    cd ~/cm11

    repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0

    復制代碼
    你需要按提示輸入用戶名和郵箱。
    3.9003device源碼
    cd ~/cm11/.repo

    mkdir local_manifests && cd local_manifests

    gedit roomservice.xml
    復制代碼
    粘貼以下內容
    <?xml version="1.0" encoding="UTF-8"?>

    <manifest>

    <project name="dhiru1602/android_device_samsung_galaxysl" path="device/samsung/galaxysl" remote="github" revision="cm-11.0" />

    <project name="dhiru1602/android_vendor_samsung_galaxysl" path="vendor/samsung/galaxysl" remote="github" revision="cm-11.0" />

    <project name="dhiru1602/android_kernel_samsung_latona" path="kernel/samsung/latona" remote="github" revision="cm-11.0" />

    <project name="CyanogenMod/android_packages_apps_SamsungServiceMode" path="packages/apps/SamsungServiceMode" remote="github" revision="cm-11.0"/>

    </manifest>
    復制代碼
    保存。
    4.同步源碼
    cd ~/cm11

    repo sync -j8
    復制代碼
    源碼有好幾個G,同步時間長短取決於你的網路速度。
    四、編譯
    1.編譯之前同步最新源碼
    repo sync
    復制代碼
    2.初始化環境
    . build/envsetup.sh
    復制代碼
    3.編譯
    brunch galaxysl
    復制代碼
    接著喝杯茶,編譯時間長短取決於你的電腦配置。
    不出意外,你會最終得到~/cm11/out/target/proct/galaxysl/cm-11-XXXXX-UNOFFICIAL-galaxysl.zip
    五、刷機測試

    以上就是編譯cm11的過程。

    對於其他rom,類似。
    mokee:
    mkdir ~/mokee && cd ~/mokee

    repo init -u https://github.com/MoKee/android.git -b kk_mkt

    5. proteus出現源代碼構建失敗如何解決

    檢查Arino編譯器。proteus出現源代碼構建失敗,需要檢查Arino編譯器。源碼就是指編寫的最原始程序的代碼,運行的軟體是要經過編寫的,程序員編寫程序的過程中需要的"語言"。

    6. 什麼是源代碼編譯

    零基礎的人想要寫代碼首先需要進行一定的學習,了解一些基礎的編程知識,選擇適合自己的程序語言,之後通過不斷的學習就可以寫代碼。

    從簡單的、直接的幾行十幾行程序開始,比如計算器;到復雜的小工具,比如大數計算器。這個過程中逐漸明白數組、指針、內存布局、函數,了解遞歸、棧、鏈表,然後學基本的數據結構。

    C語言也好,python也好,得學會把自己的思考用程序實現。舉個例子,想制定計劃表,安排自己的時間,那這個問題就可以寫個程序來實現;想做筆記、管理自己的文件,這也是一個程序。從簡單的、直接的幾行十幾行程序開始,比如計算器;到復雜的小工具,比如大數計算器。

    代碼組合

    源代碼作為軟體的特殊部分,可能被包含在一個或多個文件中。一個程序不必用同一種格式的源代碼書寫。例如,一個程序如果有C語言庫的支持,那麼就可以用C語言;而另一部分為了達到比較高的運行效率,則可以用匯編語言編寫。

    較為復雜的軟體,一 般需要數十種甚至上百種的源代碼的參與。為了降低種復雜度,必須引入一種可以描述各個源代碼之間聯系,並且如 何正確編譯的系統。在這樣的背景下,修訂控制系統(RCS)誕生了,並成為研發者對代碼修訂的必備工具之一。

    7. c++中的編譯,構建各是起什麼作用

    編譯:把當前源代碼編譯成2進制目標文件
    構建:先把工程中所有源代碼編譯成目標文件,再link鏈接成可執行文件(或者lib、dll,看具體工程)。這其中,如果有源文件在此之前被單獨編譯過,這個文件就不參加編譯,它之前編譯時產生的目標文件參加link(鏈接)過程。
    重新構建:就是不管之前有沒有源文件被單獨編譯,都要參與編譯。

    不同的C++編譯環境可能不一定叫構建,但都有類似的功能。

    8. 如何自己編譯源代碼

    我們使用編譯器將自己的源代碼轉換成目標代碼, 使用鏈接器將我們的目標代碼鏈接成一個可執行程序。另外, 我們使用一些程序在計算機中輸入源代碼文本並且編輯它。這些是最初的和最重要的工具, 它們構成程序員的工具集合或「程序開發環境」。 如果你使用的是命令行窗口, 就像很多專業程序員所做的那樣, 你將不得不自己來編寫編譯和鏈接命令。如果你使用IDE(「互動式開發環境」或「集成式開發環境」), 就像很多程序員所做的那樣, 簡單地點擊正確按鈕就可以完成這個工作。附錄C介紹了如何在你的C++實現中編譯和鏈接。 IDE通常包括一個具有有用特性的編輯器, 例如用不同顏色的代碼來區分你的源代碼中的注釋、 關鍵字和其他部分, 以及其他幫助你來調試代碼、 編譯和運行代碼的功能。調試是發現程序中的錯誤和排除錯誤的活動, 你在前進的道路上會聽到很多有關它的內容。 我們使用微軟的Visual C++作?喑炭 ⒒肪呈道 H綣 頤羌虻サ廝怠氨嘁肫鰲被蚴恰癐DE」的某些部分, 那就是所指Visual C++系統。但是, 你可以使用一些提供最新的、 符合標準的C++實現的系統。我們所說的大多數內容(經過微小的修改)對所有的C++實現都將是正確的, 並且其代碼可以在任何地方運行。在工作中, 我們使用幾種不同的實現。

    9. 如何編譯Docker源碼

    本文根據docker官方給出的docker代碼編譯環境搭建指南做更深入的分析。官方給出的指導比較簡單,但是由於國內的網路問題經常會編譯失敗,了解了編譯步驟後,也可以結合自身遇到的網路問題進行「規避」。
    docker的編譯環境實際上是創建一個docker容器,在容器中對代碼進行編譯。 如果想快速的查看編譯環境搭建指導,而不關注環境搭建的機制和細節,可以直接跳到最後一章「總結」。

    前提
    機器上已經安裝了docker,因為編譯環境是個docker容器,所以要事先有docker(daemon),後面會創建個編譯環境容器,在容器裡面編譯代碼。本文中使用物理機,物理機上運行著docker (daemon)。
    機器(物理機)上安裝了git 。 後續使用git下載docker源碼
    機器(物理機)上安裝了make。
    下載ubuntu 14.04的docker鏡像

    下載docker源碼
    git clone
    會把代碼下載到當前目錄下,後面會把代碼拷貝到容器中。

    編譯前分析
    官方給的編譯方法是make build 和 make binary等。下面先分析Makefile,看懂Makefile後,編譯環境的准備流程就比較清楚了。

    Makefile
    在下載的docker源碼中可以看到它的Makefile,Makefile中比較關鍵的幾個參數:
    DOCKER_MOUNT := $(if $(BIND_DIR),-v "$(CURDIR)/$(BIND_DIR):/go/src/github.com/docker/docker/$(BIND_DIR)") DOCKER_MOUNT 表示創建容器時的mount參數。因為編譯環境是一個容器,在後續的步驟中啟動容器時使用DOCKER_MOUNT參數,會將物理機上的目錄mount給容器容器,容器中該目錄是編譯生成docker二進制文件的目錄。
    DOCKER_FLAGS := docker run --rm -i --privileged $(DOCKER_ENVS) $(DOCKER_MOUNT) 這是後面創建docker容器時的命令行的一部分,其中包含了前面的DOCKER_MOUNT參數。
    DOCKER_IMAGE := docker-dev$(if $(GIT_BRANCH),:$(GIT_BRANCH)) 這是docker image參數,鏡像的名字是docker-dev,以當前git中docker版本作為tag名。這個鏡像是在make build一步做出來的。
    DOCKER_RUN_DOCKER := $(DOCKER_FLAGS) "$(DOCKER_IMAGE)" 創建docker容器的命令行,組合了前面的DOCKER_FLAGS 和 DOCKER_IMAGE 。 從命令行中可以看出,啟動容器使用的參數有 --rm -i --privileged,使用了一些環境變數,還有使用了-v參數把物理機上目錄mount給容器,在容器中編譯好二進制文件後放到該目錄中,在物理機上就能獲得docker二進制文件。啟動的的docker 容器鏡像名字是docker-dev。下文會介紹docker-dev鏡像是怎麼來的。
    由於官方給出的「構建編譯環境」的方法是執行 make build,下面在Makefile中看到build分支是這樣的:

    make build時會調用 docker build -t "$(DOCKER_IMAGE)" . 去製作一個叫做DOCKER_IMAGE的鏡像。
    進行源碼編譯的方式是執行 make binary來編譯代碼,在Makefile中make binary的分支如下:

    make binary除了進行 make build以外,會執行$(DOCKER_RUN_DOCKER),即上文提到的docker run命令行。由於執行過了build,會build出來docker-dev鏡像,所以在docker run時直接使用前面build出來的鏡像。docker run時的命令行參數是hack/make.sh binary。make binary的過程實際上是創建一個容器,在容器中執行hack/make.sh binary腳本。接下來會詳細介紹make build和make binary所做的內容。
    make build
    根據官方的指導,先執行make build來搭建編譯環境。上面分析了,make build實際上是製作了一個鏡像,這個鏡像里會包含編譯代碼所需的環境。下面來介紹下這個鏡像。

    Dockerfile
    在和Makefile相同的目錄下(源碼的根目錄),有Dockerfile。執行make build 相當於調用docker build,使用的就是該Dockerfile。Dockerfile中的幾個主要步驟(有些步驟這里略過):
    FROM ubuntu:14.04 使用ubuntu 14.04作為基礎鏡像;在宿主機上,要事先下載好ubuntu 14.04鏡像。
    安裝一些編譯需要的軟體;
    用git下載lvm2源碼,並編譯安裝;
    下載並安裝GO 1.5.1;
    安裝GO相關的tools 可以做code coverage test 、 go lint等代碼檢查
    安裝registry和notary server;
    安裝docker-py 後面跑集成測試用的
    將物理機的contrib/download-frozen-image.sh 腳本拷貝到鏡像中/go/src/github.com/docker/docker/contrib/
    運行contrib/download-frozen-image.sh 製作鏡像 實際上這一步只是下載了3個鏡像的tar文件。注意:docker build相當於創建一個臨時的容器(在臨時的容器中執行Dockerfile中的每一步,最後在保存成鏡像),「運行contrib/download-frozen-image.sh 製作鏡像」這個動作出現在Dockerfile中,相當於在docker build所創建的臨時的容器中下載docker鏡像,有docker-in-docker容器嵌套的概念。下一小節會對download-frozen-image.sh腳本做詳細分析。
    ENTRYPOINT ["hack/dind"] 做出來的鏡像,使用它啟動的容器可以自動運行源碼目錄中的hack/dind腳本。 dind這個腳本是a wrapper script which allows docker to be run inside a docker container 。後面的小節會對hack/dind腳本做詳細的分析。
    COPY . /go/src/github.com/docker/docker 把物理機上的docker源碼文件打入到鏡像中
    download-frozen-image.sh腳本
    上一小節里提到,在Dockerfile中,有一步會調用contrib/download-frozen-image.sh ,它主要作用是下載3個鏡像的tar包,供後續docker load。在Dockerfile中的調用方式如下:

    download-frozen-image.sh腳本中會依次解析參數,其中/docker-frozen-images作為base dir,後面下載的東西全放到這里。之後的3個參數是鏡像,裡麵包含了鏡像名(例如busybox)、鏡像tag(例如latest)、鏡像id(例如),後面會在循環中依次下載這3個鏡像的tar文件。
    download-frozen-image.sh腳本中會通過curl從registry上獲取如下信息:
    token:獲取token,後面curl獲取的其他信息時都需要使用token。例如本例中 token='signature=,repository="library/busybox",access=read'
    ancestryJson:把鏡像相關聯的歷史層次的id也都獲取到,因為每一層的tar都需要下載。本例中 ancestryJson='["", ""]'
    這里可以看到這個鏡像只有2層,兩層的id這里都列了出來。 每個鏡像包含的層數不同,例如。第三個鏡像jess/unshare共有10層。
    VERSION、json、tar: 每一層鏡像id的目錄下,都下載這3個文件,其中VERSION文件內容目前都是「1.0」,json文件是該層鏡像的json文件,tar文件是該層鏡像的真正內容,以.tar保存。
    下載好的各層鏡像目錄結構如下:
    $ls

    $tree

    hack/dind腳本
    在Dockerfile中,ENTRYPOINT ["hack/dind"] ,表示在鏡像啟動後,運行該腳本,下面分析一下這個腳本的功能。
    腳本在代碼根目錄下的hack目錄中,作者對腳本的描述是 DinD: a wrapper script which allows docker to be run inside a docker container.
    就是可以在docker容器中創建docker容器。它就做了一個事,那就是在容器中創建好cgroup目錄,並把各個cgroup子系統mount上來。
    為了方便理解,我們可以先看看物理機。在宿主機上如果創建docker容器,需要宿主機上必須事先mount cgroup子系統,因為cgroup是docker容器的一個依賴。同理docker-in-docker也要求外層的docker容器中有cgroup子系統,dind腳本在容器啟動後,先去/proc/1/cgroup中獲取cgroup子系統,然後依次使用mount命令,將cgroup mount上來,例如mount -n -t cgroup -o "cpuset" cgroup "/cgroup/cpuset"
    最終在運行make build後,會製作出一個叫docker-dev的鏡像。
    make binary
    執行make binary 就可以編譯出docker二進制文件。編譯出來的二進制文件在源碼目錄下的bundles/1.10.0-dev/binary/docker-1.10.0-dev ,其中還包含md5和sha256文件。

    Makefile中的binary
    Makefile中關於make binary流程是

    先執行build,即上一節介紹的,製作docker-dev編譯環境鏡像。
    再執行DOCKER_RUN_DOCKER,創建容器,DOCKER_RUN_DOCKER就是執行docker run,使用docker-dev鏡像啟動容器,並且會mount -v 將容器生成二進制文件的路徑與宿主機共享。DOCKER_RUN_DOCKER在「編譯前分析」一章中有介紹。啟動的容器運行的命令行是 hack/make.sh binary 。docker run完整的形式如下:
    docker run --rm -i --privileged -e BUILDFLAGS -e DOCKER_CLIENTONLY -e DOCKER_DEBUG -e DOCKER_EXECDRIVER -e DOCKER_EXPERIMENTAL -e DOCKER_REMAP_ROOT -e DOCKER_GRAPHDRIVER -e DOCKER_STORAGE_OPTS -e DOCKER_USERLANDPROXY -e TESTDIRS -e TESTFLAGS -e TIMEOUT -v "/home/mu/src/docker/docker/bundles:/go/src/github.com/docker/docker/bundles" -t "docker-dev:master" hack/make.sh binary
    hack/make.sh腳本
    上一節提到的make binary中創建的容器啟動命令是hack/make.sh binary,運行容器中的(docker源碼目錄下的)hack/make.sh腳本,參數為binary。
    make.sh中根據傳入的參數組裝後續編譯用的flags(BUILDFLAGS),最後根據傳入的參數依次調用 hack/make/目錄下對應的腳本。例如我們的操作中傳入的參數只有一個binary。那麼在make.sh的最後,會調用hack/make/binary腳本。
    hack/make/binary腳本中,就是直接調用go build進行編譯了,其中會使用BUILDFLAGS LDFLAGS LDFLAGS_STATIC_DOCKER等編譯選項。
    如果最終生成的docker二進制文件不在bundles/1.10.0-dev/binary/目錄下,那麼可能是編譯參數BINDDIR設置的不正確,可以在執行make binary時增加BINDDIR參數,例如
    make BINDDIR=. binary , 將BINDDIR設置為當前目錄。
    總結
    編譯步驟總結:
    1、編譯前在物理機上安裝好make、git,並下載好docker代碼。下載好ubuntu:14.04鏡像
    2、執行make build 。這步執行完會在物理機上創建出一個docker-dev的鏡像。
    3、執行make binary 。 這步會使用docker-dev鏡像啟動一個容器,在容器中編譯docker代碼。編譯完成後在物理機上直接可以看到二進制文件。默認二進制文件在 bundles/1.10.0-dev/binary/目錄下
    4、docker代碼里有很多test,可以使用此套編譯環境執行test,例如 make test 。 更多參數可以看Makefile
    搭建環境心得:
    1、在make build時,使用Dockerfile創建製作鏡像,這個鏡像有40多層,其中一層失敗就會導致整個build過程失敗。由於Dockerfile中很多步驟是要連到國外的網站去下載東西,很容易失敗。好在docker build有cache機制,如果前面的層成功了,下次重新build時會使用cache跳過,節省了很多時間。所以如果make build中途失敗(一般是由於國內連國外的網路原因),只要重新執行make build就會在上次失敗的地方繼續,多試幾次可以成功。
    2、如果其他人已經build出了docker-dev鏡像,可以把它下載到自己的環境上。這樣在自己make build時,會跳過那些已經在本地存在的層,可以節省時間。
    3、每一次編譯會自動刪除掉前面已經生成的二進制文件,所以不用擔心二進制文件不是最新的問題。

    10. Android源碼編譯

    在編譯源碼之前需要做一些准備操作, 詳細步驟如下:
    1. 安裝JDK, google官方要求編譯2.3源碼需要JDK1.6.

    注意: ubuntu自帶的源中速度比較慢, 有些軟體找不到, 所以需要修改為國內的源, 修改源步驟如下:

    執行完上面幾步, 數據源就更新完成了, 下面就開始安裝編譯依賴的軟體, 同樣, 在終端中以行為單位依次輸入以下命令:

    熱點內容
    java返回this 發布:2025-10-20 08:28:16 瀏覽:829
    製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:1094
    python中的init方法 發布:2025-10-20 08:17:33 瀏覽:800
    圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:964
    怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:855
    c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1208
    郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:428
    shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:308
    怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:983
    python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:952