国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Android.mk文件編寫

這篇具有很好參考價(jià)值的文章主要介紹了Android.mk文件編寫。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Android.mk文件編寫

來源:https://www.jianshu.com/p/9aab51f4cd6f

1. Android.mk 介紹

Android.mk 是Android 提供的一種makefile 文件,注意用來編譯生成 exe(二進(jìn)制可執(zhí)行文件)、so(動(dòng)態(tài)庫文件)、a(靜態(tài)庫文件)、jar(jar包) 和 apk 等文件。Android.mk和一個(gè)或多個(gè).c的源文件放在同一目錄下做為一個(gè)模塊,通過mm或者mmm命令來編譯該模塊,生成自己所需的文件,如:二進(jìn)制的可執(zhí)行文件、動(dòng)態(tài)庫、靜態(tài)庫、jar包和apk??蓞⒖荚腁ndroid.mk文件進(jìn)行修改來編寫適合自己的Android.mk文件,故需要掌握Android.mk的基本語法。

通過make命令可以編譯整個(gè)android源碼;mm指令編譯當(dāng)前目錄(單獨(dú)模塊的編譯);mmm指令就是用來編譯指定目錄(單獨(dú)模塊的編譯)。

2. Android.mk 基本語法

2.1 Android.mk 基本語法格式示例:

  • 配置環(huán)境變量:定義當(dāng)前模塊的相對(duì)路徑
    LOCAL_PATH := $(call my-dir)
  • 清空當(dāng)前環(huán)境變量:除 LOCAL_PATH 外的所有環(huán)境變量
    include $(CLEAR_VARS)
  • 編譯所生成的目標(biāo)文件的文件名
    LOCAL_MODULE := test
  • 編譯該模塊所需的源文件:使用連接符“\”連接多個(gè)源文件
    LOCAL_SRC_FILES := test.c
  • 編譯所生成的目標(biāo)文件的格式(類型):
    include $(BUILD_EXECUTABLE)

2.2 編譯生成的目標(biāo)文件類型:

  • EXECUTABLES:二進(jìn)制可執(zhí)行文件
  • SHARED_LIBRARIES:動(dòng)態(tài)庫文件
  • STATIC_LIBRARY:靜態(tài)庫文件
  • JAVA_LIBRARIES:jar包
  • PACKAGE:apk

2.3 Android.mk 中引用資源:

  • 引用系統(tǒng)靜態(tài)庫 —> LOCAL_STATIC_LIBRARIES += libxxx
  • 引用系統(tǒng)動(dòng)態(tài)庫 —> LOCAL_SHARED_LIBRARIES += libxxx

如引用系統(tǒng)動(dòng)態(tài)庫:LOCAL_SHARED_LIBRARIES += liblog

  • 引用第三方庫文件 —> LOCAL_LDFLAGS := -L/PATH -lxxx

如引用第三方動(dòng)態(tài)庫:LOCAL_LDFLAGS := -L$(LOCAL_PATH)/lib/ -ltest3

如引用第三方靜態(tài)庫:LOCAL_LDFLAGS := $(LOCAL_PATH)/lib/libtest2.a

  • 引用第三方頭文件 —> LOCAL_C_INCLUDES := path

如:LOCAL_C_INCLUDES = $(INCLUDES)

  • 引入頭文件等 —> LOCAL_xxx := xxx
  • 引入jar包等 —> LOCAL_xxx := xxx

如引入共享(動(dòng)態(tài))jar包:LOCAL_STATIC_JAVA_LIBRARIES := libarity android-support-v4 guava

3 Android.mk管理源碼文件(指定編譯所需的源碼文件)

3.1 編譯多個(gè)源碼文件

問題:一個(gè)工程下有多個(gè)源碼文件,怎么統(tǒng)一管理進(jìn)行編譯?

?

Android.mk文件編寫

?

工程目錄結(jié)構(gòu).png

?

解答:將工程下的多個(gè)源碼文件添加到Android.mk的變量LOCAL_SRC_FILES中
(1)方法一: 使用連接符“\”將每個(gè)源文件添加到Android.mk中 (2) 方法一: 使用系統(tǒng)提供的函數(shù)處理

Android.mk文件編寫

?

編譯多個(gè)源碼文件的方法.png

?

Android.mk文件編寫

編譯生成目標(biāo)文件.png

?

3.2 一個(gè)Android.mk 文件編譯生成多個(gè)目標(biāo)文件

問題:如何在一個(gè)Android.mk 文件編譯生成多個(gè)目標(biāo)文件?如同時(shí)生成多個(gè) bin 文件(二進(jìn)制可執(zhí)行文件)、.so 文件(動(dòng)態(tài)庫文件)和 .a 文件(靜態(tài)庫文件)。
解答:LOCAL_PATH變量不變,其他變量復(fù)制并重新進(jìn)行配置

Android.mk文件編寫

一個(gè)Android.mk 文件編譯生成多個(gè)目標(biāo)文件的方法.png

?

Android.mk文件編寫

一個(gè)Android.mk 文件編譯生成多個(gè)目標(biāo)文件.png

4 Android.mk 管理編譯所生成的目標(biāo)文件類型

4.1 編譯生成 exe、so 或 a 文件 —> 源文件為 C/C++ 文件

  • 如何編譯生成二進(jìn)制可執(zhí)行文件exe->修改編譯類型為:BULID_EXECUTABLE
  • 如何編譯生成動(dòng)態(tài)庫文件so->修改編譯類型為:BULID_SHARED_LIBRARY
  • 如何編譯生成靜態(tài)庫文件a->修改編譯類型為:BULID_STATIC_LIBRARY

(1) 指定編譯生成的文件類型

Android.mk文件編寫

指定編譯生成的文件類型.png

(2) 編譯生成各類目標(biāo)文件

Android.mk文件編寫

編譯生成各類目標(biāo)文件.png

4.2 編譯生成 jar 包或 apk文件 —> 源文件為 java 文件

(1) 編譯生成 jar 包

  LOCAL_PATH := $(call my-dir)
  include $(CLEAR_VARS)
  LOCAL_SRC_FILES := $(call all-subdir-java-files)
  LOCAL_MODULE := com.test.myjar
  include $(BUILD_JAVA_LIBRARY)
  • 靜態(tài)jar包:include $(BUILD_STATIC_JAVA_LIBRARY)
    使用.class文件打包而成的JAR文件,可以在任何java虛擬機(jī)運(yùn)行
  • 動(dòng)態(tài)jar包:include $(BUILD_JAVA_LIBRARY)
    在靜態(tài)jar包基礎(chǔ)之上使用.dex打包而成的jar文件,.dex是android系統(tǒng)使用的文件格式。

(2) 編譯生成 apk
語法:

  LOCAL_PATH := $(call my-dir)
  include $(CLEAR_VARS)
  LOCAL_SRC_FILES := $(call all-subdir-java-files)
  LOCAL_PACKAGE_NAME := LocalPackage
  include $(BUILD_PACKAGE)
  • LOCAL_SRC_FILES := $(call all-subdir-java-files) —> 獲取當(dāng)前目錄下所有的java文件作為源文件
  • LOCAL_PACKAGE_NAME := LocalPackage —> 編譯生成的目標(biāo)文件名為LocalPackage
  • include $(BUILD_PACKAGE) —> 編譯生成的目標(biāo)文件類型為apk

:若apk依賴于jar包,即在apk中導(dǎo)入jar包和庫文件的語法為

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_JAVA_LIBRARIES := share-library
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_PACKAGE_NAME := LocalPackage
include $(BUILD_PACKAGE)

  • apk中導(dǎo)入靜態(tài)jar包 —> LOCAL_STATIC_JAVA_LIBRARIES := static-library
  • apk中導(dǎo)入動(dòng)態(tài)(系統(tǒng)/共享)jar包 —> LOCAL_JAVA_LIBRARIES := share-library
    如:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

LOCAL_STATIC_JAVA_LIBRARIES := libarity android-support-v4 guava

LOCAL_SRC_FILES := $(call all-java-files-under, src)

LOCAL_SDK_VERSION := current

LOCAL_PACKAGE_NAME := Calculator

include $(BUILD_PACKAGE)

5. Android.mk 引入各種庫和頭文件

5.1 在工程引入系統(tǒng)庫

工程如何引入系統(tǒng)庫:將源文件中使用的系統(tǒng)庫添加到Android.mk中,即LOCAL_SHARED_LIBRARIES += libxxx。libxxx 代表系統(tǒng)庫名稱。
(1) 如:新建源文件main.cpp中使用了系統(tǒng)函數(shù) ALOGE("")

#include <stdio.h>
#define LOG_TAG "Main"
#include <utils/Log.h>
int main(void)
{
   ALOGE("test");
   return 0;
}

(2) 將源文件main.cpp添加至Android.mk

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE:= test3
LOCAL_C_ALL_FILES := src/main.cpp
LOCAL_SRC_FILES := $(LOCAL_C_ALL_FILES)
LOCAL_MODULE_PATH := $(LOCAL_PATH)/bin
include $(BUILD_EXECUTABLE)

(3) 直接編譯報(bào)錯(cuò):沒用將源碼中使用的系統(tǒng)庫文件引入工程

Android.mk文件編寫

編譯報(bào)錯(cuò).png

?

(4) 修改Android.mk:將源文件main.cpp中使用的系統(tǒng)函數(shù)對(duì)應(yīng)的庫liblog加入,即添加LOCAL_SHARED_LIBRARIES += liblog

Android.mk文件編寫

引入系統(tǒng)庫文件.png


(5) 重新編譯成功

Android.mk文件編寫

編譯成功.png

5.2 在工程引入第三方庫

說明1:新建源文件test1.cpp

#include <stdio.h>
void call_test(void)
{
   printf("test1\n");
   return;
}

說明2:Android.mk文件如下

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE:= libtest3
LOCAL_C_ALL_FILES := src/test1.cpp
LOCAL_SRC_FILES := $(LOCAL_C_ALL_FILES)
LOCAL_MODULE_PATH := $(LOCAL_PATH)/lib
include $(BUILD_SHARED_LIBRARY)


include $(CLEAR_VARS)
LOCAL_MODULE:= test3
LOCAL_C_ALL_FILES := src/main.cpp
LOCAL_SHARED_LIBRARIES += liblog
LOCAL_SRC_FILES := $(LOCAL_C_ALL_FILES)
LOCAL_MODULE_PATH := $(LOCAL_PATH)/bin
include $(BUILD_EXECUTABLE)

備注:test1.cpp編譯生成了動(dòng)態(tài)庫libtest3.so文件(相當(dāng)于第三方庫文件),main.cpp編譯生成了二進(jìn)制可執(zhí)行test3文件。

5.2.1 引入第三方動(dòng)態(tài)庫

工程如何引入第三方動(dòng)態(tài)庫:將源文件中使用的第三方庫添加到Android.mk中,即LOCAL_LDFLAGS := -L/Path -lxxx。Path 代表第三方庫路徑,xxx代表第三方庫名稱 or 編譯生成的目標(biāo)文件名
(1) 如:工程源文件main.cpp調(diào)用了test1.cpp中的函數(shù),通過extern的方式

Android.mk文件編寫

調(diào)用其他文件中的函數(shù).png


(2) 直接編譯則會(huì)報(bào)錯(cuò):

Android.mk文件編寫

編譯報(bào)錯(cuò).png


(3) 需修改Android.mk:引入第三方庫libtest3.so文件,即添加:LOCAL_LDFLAGS := -L ./lib/ -ltest3 或LOCAL_LDFLAGS := -L$(LOCAL_PATH)/lib/ -ltest3

Android.mk文件編寫

引入第三方庫文件.png


(4) 重新編譯成功

Android.mk文件編寫

編譯成功.png

5.2.2 引入第三方頭文件

說明1:頭文件test1.h 文件如下

#ifndef TEST1 H
#define TEST1 H
extern void call_test(void);
#endif

說明2:Android.mk文件如下

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE:= libtest3
LOCAL_C_ALL_FILES := src/test1.cpp
LOCAL_SRC_FILES := $(LOCAL_C_ALL_FILES)
LOCAL_MODULE_PATH := $(LOCAL_PATH)/lib
include $(BUILD_SHARED_LIBRARY)


include $(CLEAR_VARS)
LOCAL_MODULE:= test3
LOCAL_LDFLAGS := -L ./lib/ -ltest3
#LOCAL_LDFLAGS := -L$(LOCAL_PATH)/lib/ -ltest3
LOCAL_C_ALL_FILES := src/main.cpp
LOCAL_SHARED_LIBRARIES += liblog
LOCAL_SRC_FILES := $(LOCAL_C_ALL_FILES)
LOCAL_MODULE_PATH := $(LOCAL_PATH)/bin
include $(BUILD_EXECUTABLE)

工程如何引入第三方頭文件:在Android.mk文件中配置頭文件路徑LOCAL_C_INCLUDES := Path 。Path 代表頭文件的路徑。
(1) 如:工程源文件main.cpp調(diào)用了test1.cpp中的函數(shù),通過頭文件的方式

Android.mk文件編寫

main.cpp.png
(2) 當(dāng)頭文件的路徑和main.cpp的路徑相差很多時(shí),可通過以下方式來引入頭文件

Android.mk文件編寫

main.cpp.png

Android.mk文件編寫

配置頭文件路徑.png

5.2.3 引入第三方靜態(tài)庫

工程如何引入第三方靜態(tài)庫:將源文件中使用的第三方庫靜態(tài)庫添加到Android.mk中,即LOCAL_LDFLAGS := Path。Path 代表第三方庫靜態(tài)庫的路徑。

Android.mk文件編寫

引入第三方靜態(tài)庫.png?

6. Android.mk 中使用判斷語句

語法:

ifeq($(VALUE), x)  
  do_yes
else
  do_no
endif

ifneq($(VALUE), x)  
  do_yes
else
  do_no
endif

如:

Android.mk文件編寫

靜態(tài)庫與動(dòng)態(tài)庫的區(qū)別
首先來看什么是庫,庫(Library)說白了就是一段編譯好的二進(jìn)制代碼,加上頭文件就可以供別人使用。
什么時(shí)候我們會(huì)用到庫呢?一種情況是某些代碼需要給別人使用,但是我們不希望別人看到源碼,就需要以庫的形式進(jìn)行封裝,只暴露出頭文件。另外一種情況是,對(duì)于某些不會(huì)進(jìn)行大的改動(dòng)的代碼,我們想減少編譯的時(shí)間,就可以把它打包成庫,因?yàn)閹焓且呀?jīng)編譯好的二進(jìn)制了,編譯的時(shí)候只需要 Link 一下,不會(huì)浪費(fèi)編譯時(shí)間。
上面提到庫在使用的時(shí)候需要 Link,Link 的方式有兩種,靜態(tài)和動(dòng)態(tài),于是便產(chǎn)生了靜態(tài)庫和動(dòng)態(tài)庫。
靜態(tài)庫
靜態(tài)庫即靜態(tài)鏈接庫(Windows 下的 .lib,Linux 和 Mac 下的 .a)。之所以叫做靜態(tài),是因?yàn)殪o態(tài)庫在編譯的時(shí)候會(huì)被直接拷貝一份,復(fù)制到目標(biāo)程序里,這段代碼在目標(biāo)程序里就不會(huì)再改變了。
靜態(tài)庫的好處很明顯,編譯完成之后,庫文件實(shí)際上就沒有作用了。目標(biāo)程序沒有外部依賴,直接就可以運(yùn)行。當(dāng)然其缺點(diǎn)也很明顯,就是會(huì)使用目標(biāo)程序的體積增大。
動(dòng)態(tài)庫
動(dòng)態(tài)庫即動(dòng)態(tài)鏈接庫(Windows 下的 .dll,Linux 下的 .so,Mac 下的 .dylib)。與靜態(tài)庫相反,動(dòng)態(tài)庫在編譯時(shí)并不會(huì)被拷貝到目標(biāo)程序中,目標(biāo)程序中只會(huì)存儲(chǔ)指向動(dòng)態(tài)庫的引用。等到程序運(yùn)行時(shí),動(dòng)態(tài)庫才會(huì)被真正加載進(jìn)來。
動(dòng)態(tài)庫的優(yōu)點(diǎn)是,不需要拷貝到目標(biāo)程序中,不會(huì)影響目標(biāo)程序的體積,而且同一份庫可以被多個(gè)程序使用(因?yàn)檫@個(gè)原因,動(dòng)態(tài)庫也被稱作共享庫)。同時(shí),編譯時(shí)才載入的特性,也可以讓我們隨時(shí)對(duì)庫進(jìn)行替換,而不需要重新編譯代碼。動(dòng)態(tài)庫帶來的問題主要是,動(dòng)態(tài)載入會(huì)帶來一部分性能損失,使用動(dòng)態(tài)庫也會(huì)使得程序依賴于外部環(huán)境。如果環(huán)境缺少動(dòng)態(tài)庫或者庫的版本不正確,就會(huì)導(dǎo)致程序無法運(yùn)行(Linux 下喜聞樂見的 lib not found 錯(cuò)誤)。文章來源地址http://www.zghlxwxcb.cn/news/detail-428063.html

到了這里,關(guān)于Android.mk文件編寫的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Android.mk文件解析

    1、LOCAL_PATH 當(dāng)前模塊位置 my_dir 系統(tǒng)提供的宏函數(shù),返回當(dāng)前文件所在的路徑 $(call my_dir) 調(diào)用該函數(shù) 2、include $(CLEAR_VARS) 清除除了 LOCAL_PATH 變量外的LOCAL_XXX變量 所有的編譯控制文件都在同一個(gè)GNU MAKE執(zhí)行環(huán)境中,所有的編譯控制文件由同一個(gè)GNU Make解析和執(zhí)行,其變量是全局

    2023年04月22日
    瀏覽(31)
  • Android.mk 文件使用解析

    Android.mk 文件使用解析

    和你一起終身學(xué) 習(xí),這里是程序員Android 經(jīng)典好文推薦,通過閱讀本文,您將收獲以下知識(shí)點(diǎn): 一、Android.mk 簡介 二、Android.mk 的基本格式 三、Android.mk 深入學(xué)習(xí)一 四、 Android.mk 深入學(xué)習(xí)二 五、 Android.mk 深入學(xué)習(xí)三 六、 Android.mk 判斷語句 七、參考文獻(xiàn) Android.mk 是Android 提供的

    2024年02月09日
    瀏覽(20)
  • 配置hosts文件,輸入某域名(www.XXX.com)時(shí)出現(xiàn)自己的頁面

    配置hosts文件,輸入某域名(www.XXX.com)時(shí)出現(xiàn)自己的頁面

    1、以管理員身份運(yùn)行記事本。 2、打開C:WindowsSystem32driversetc路徑下的hosts文件 3、如果頁面沒有任何文件,點(diǎn)擊如圖的所有文件即可 ? ?4、打開文件,在最下面寫上自己的ip和所用的域名即可。 (注意 :如果配置完之后依然沒用,可以嘗試清除瀏覽器本地緩存) 原理: ? ?

    2024年02月13日
    瀏覽(32)
  • 小程序 - Taro小程序中打開h5頁面鏈接 - 并解決:無法打開該頁面 - 不支持打開 https://www.baidu.com/,請(qǐng)?jiān)凇靶〕绦蛴疑辖歉?>反饋與投訴”中和開發(fā)者反饋

    小程序 - Taro小程序中打開h5頁面鏈接 - 并解決:無法打開該頁面 - 不支持打開 https://www.baidu.com/,請(qǐng)?jiān)凇靶〕绦蛴疑辖歉?>反饋與投訴”中和開發(fā)者反饋

    Taro 小程序中h5跳轉(zhuǎn)打開頁面 借助 webView 組件打開h5頁面 @/pages/webView/webView.js 文件 Taro 中 webView 組件 29 行 主要代碼 無法打開該頁面 - 不支持打開 https://www.baidu.com/,請(qǐng)?jiān)凇靶〕绦蛴疑辖歉?反饋與投訴”中和開發(fā)者反饋 解決 - 在微信公眾平臺(tái) 小程序進(jìn)行業(yè)務(wù)域名配置 具體

    2024年02月09日
    瀏覽(30)
  • Android 淺度解析:mk預(yù)置AAR、SO文件、APP包和簽名

    在Android開發(fā)中,經(jīng)常需要使用到第三方庫,這些庫通常以AAR或JAR的形式提供。在本文中,將詳細(xì)介紹如何在Android.mk文件中引用AAR文件。 AAR(Android Archive)文件是Android庫項(xiàng)目的打包格式,它包含了Java類、資源文件、清單文件和可選的本地庫文件。AAR文件是一種方便的方式來

    2024年02月13日
    瀏覽(21)
  • 云計(jì)算與openStack-openStack學(xué)習(xí) https://www.bilibili.com/video/BV1Jq4y1M7GC?p=22&spm_id_from=pageDriver

    云計(jì)算與openStack-openStack學(xué)習(xí) https://www.bilibili.com/video/BV1Jq4y1M7GC?p=22&spm_id_from=pageDriver

    一.openStack的主要組件 openStack提供硬件的管理能力,不提供硬件,支持不同廠商的硬件環(huán)境,將不同的硬件環(huán)境放在硬件池里面來統(tǒng)一管理 openStack還提供了認(rèn)證服務(wù)、監(jiān)測(cè)服務(wù)和數(shù)據(jù)庫服務(wù)三大共享服務(wù)來服務(wù)上面的三大組件 ,應(yīng)用程序可以通過API來管理提供的這三大組件和組件

    2023年04月14日
    瀏覽(15)
  • 【Linux】編寫COM口和USB口的規(guī)則文件(.rules)

    【Linux】編寫COM口和USB口的規(guī)則文件(.rules)

    ????????當(dāng)外接存儲(chǔ)設(shè)備(如:U盤、機(jī)械硬盤等)時(shí),由于路徑/dev下并沒有存儲(chǔ)新設(shè)備的設(shè)備節(jié)點(diǎn)、規(guī)則文件等,udev會(huì)給新的存儲(chǔ)設(shè)備按照內(nèi)核的分配規(guī)則分配設(shè)備節(jié)點(diǎn)諸如:/dev/sda(如U盤)、/dev/sdb(如機(jī)械硬盤)等臨時(shí)設(shè)備節(jié)點(diǎn), 這些臨時(shí)設(shè)備節(jié)點(diǎn)是按照外接設(shè)備的

    2024年02月13日
    瀏覽(24)
  • nginx將xxx.com重定向到www.xxx.com配置

    有時(shí)候,我們網(wǎng)站,需要將頂級(jí)域名xxx.com統(tǒng)一跳轉(zhuǎn)到二級(jí)域名www.xxx.com下。這時(shí)候,我們可以通過修改nginx配置達(dá)到我們的目的。

    2024年03月23日
    瀏覽(24)
  • Docker未授權(quán)訪問漏洞(www.hetianlab.com)

    Docker未授權(quán)訪問漏洞(www.hetianlab.com)

    Docker是一個(gè)開源的引擎,可以輕松的為任何應(yīng)用創(chuàng)建一個(gè)輕量級(jí)的、可移植的、自給自足的容器。開發(fā)者在筆記本上編譯測(cè)試通過的容器可以批量地在生產(chǎn)環(huán)境中部署,包括VMs(虛擬機(jī))、bare metal、OpenStack 集群和其他的基礎(chǔ)應(yīng)用平臺(tái)。 產(chǎn)生原因 如果在docker上配置了遠(yuǎn)程訪問,d

    2024年02月04日
    瀏覽(24)
  • wwwxxx域名選擇(www.xxx.com或者.cn)

    wwwxxx域名選擇(www.xxx.com或者.cn)

    域名就是網(wǎng)站的網(wǎng)址,就跟家庭住址一樣,那么域名就是我們網(wǎng)站的地址,我們使用方便記憶的域名(字母/數(shù)字+.COM等域名后綴:www.xxx.com)。 按所屬機(jī)構(gòu)分 常見后綴形式: COM:商業(yè)性的機(jī)構(gòu)/公司/個(gè)人,因?yàn)镃OM這個(gè)后綴公信度高,所以用得比較多 ORG :非盈利的組織、團(tuán)體

    2024年02月05日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包