當前位置:首頁 » 編程軟體 » 第3方模塊編譯

第3方模塊編譯

發布時間: 2022-12-18 21:30:03

㈠ 怎麼運行apache第三方模塊

Apache已經安裝完畢並投入運行,但是後來卻發現部分模塊沒有載入,當然有兩個方法:
1. 一是完全重新編譯Apache, 再安裝
2. 編譯模塊為SO文件,使用LoadMole指令載入擴展模塊。
apache安裝後追加mod_rewrite
1.apache1.3
apache_1.3.34.tar.gz 解壓後的目錄為 /root/apache_1.3.34 文中簡稱為「源碼目錄」
apache安裝目錄 /usr/local/apache 文中簡稱為「目標目錄」
步驟:
1、Apache安裝rewrite模塊的時候需要DBM支持,否則無法編譯,所以首先要安裝一個GDBM
下載地址:ftp://ftp.gnu.org/gnu/gdbm/
安裝步驟:
進入安裝目錄,
./configure
make
make install
make install-compat (最後行也要執行。否則無法編譯出ndbm.h頭文件)
如果您不能確定伺服器上是否已經裝有DBM,那麼可以安裝一下。否則這步可以跳過。
2、現在到apache源碼目錄的標准模塊目錄中(/root/apache_src/src/moles/standard/)中,使用如下指令編譯出so文件:
/usr/local/apache/bin/apxs -c mod_rewrite.c -lgdbm
即可得到mod_rewrite.so文件。
備註:"-lgdbm"是用為說明在編譯mod_rewrite.c時要把gdbm鏈接進來。這樣在第6步啟動apache時就不會報出"dbm fetch"的錯誤了。
3、現在讓apache的apxs來自動向http.conf配置文件中加入LoadMole語句並將mod_rewrite.so文件拷貝到apache/libexec目錄

/usr/local/apache/bin/apxs -i -A -n rewrite
/root/apache_1.3.34/src/moles/standard/mod_rewrite.so
備註:命令中的rewrite參數是告訴apxs命令mod_rewrite.so文件中的模塊名。在命令執行後,apxs會在LoadMole中為
rewrite加上"_mole"以標名模塊名稱。
如果你在啟動apache時發現總是給出「不能定位API」之類的錯誤,那就是說明LoadMole後面的模塊名的語法要根據您的apache版本加以改變。
4、停止apache
apache/bin/apachectl stop
5、運行配置文件檢查命令
apache/bin/apachectl configtest
如顯示Syntax OK,則表示整個操作成功。那麼可以到第6步。否則根據提示信息進行調試。但只要按照此文所說進行操作是不會出錯的。
6、啟動apache。
apache/bin/apachectl start

㈡ 求教關於ant引用android第三方工程打包的問題

先把第三方的工程打包成.jar、再引用、一起打包

或者

直接引用第3方工程的源碼,編譯時一起編譯、打包時也一起打包了

㈢ 在計算機編程中 模塊是什麼意思

一種編程思想,將一個大的程序分成若干個小程序。比如將學生錄取系統程序變成一個報名程序,一個比較分數程序,一個通知錄取情況程序。功能是方便開發團隊里的成員一人負責一個小程序,進而加快一個大程序的開發速度。

㈣ 如何添加第3方lib庫到kernel中

你用到什麼就添加什麼。 如果編譯器自動添加的就不需要添加。 比如使用 sndPlaySound就要添加winmm.lib

㈤ 如何安裝nginx第三方模塊

在原生的nginx,他不可以動態載入模塊,所以當你安裝第三方模塊的時候需要覆蓋nginx文件.nginx第三方模塊安裝方法如下:

1

./configure --prefix=/你的安裝目錄 --add-mole=/第三方模塊目錄

以安裝pagespeed模塊實例
在未安裝nginx的情況下安裝nginx第三方模塊

1
2
3
4
5
6
7
8

# ./configure --prefix=/usr/local/nginx-1.4.1 \
--with-http_stub_status_mole \
--with-http_ssl_mole --with-http_realip_mole \
--with-http_image_filter_mole \
--add-mole=../ngx_pagespeed-master --add-mole=/第三方模塊目錄
# make
# make isntall
# /usr/local/nginx-1.4.1/sbin/nginx

在已安裝nginx情況下安裝nginx模塊

1
2
3
4
5
6
7
8
9

# ./configure --prefix=/usr/local/nginx-1.4.1 \
--with-http_stub_status_mole \
--with-http_ssl_mole --with-http_realip_mole \
--with-http_image_filter_mole \
--add-mole=../ngx_pagespeed-master
# make
# /usr/local/nginx-1.4.1/sbin/nginx -s stop
# cp objs/nginx /usr/local/nginx/sbin/nginx
# /usr/local/nginx-1.4.1/sbin/nginx

相比之下僅僅多了一步覆蓋nginx文件.
總結,安裝nginx安裝第三方模塊實際上是使用–add-mole重新安裝一次nginx,不要make install而是直接把編譯目錄下objs/nginx文件直接覆蓋老的nginx文件.如果你需要安裝多個nginx第三方模塊,你只需要多指定幾個相應的–add-mole即可.

㈥ 如何編譯linux驅動模塊

第一步:准備源代碼

首先我們還是要來編寫一個符合linux格式的模塊文件,這樣我們才能開始我們的模塊編譯。假設我們有一個源文件mymod.c。它的源碼如下:

mymoles.c
1. #include <linux/mole.h> /* 引入與模塊相關的宏 */
2. #include <linux/init.h> /* 引入mole_init() mole_exit()函數 */
3. #include <linux/moleparam.h> /* 引入mole_param() */
4
5. MODULE_AUTHOR("Yu Qiang");
6. MODULE_LICENSE("GPL");
7
8. static int nbr = 10;
9. mole_param(nbr, int, S_IRUGO);
10.
11. static int __init yuer_init(void)
12.{
13. int i;
14. for(i=0; i<nbr; i++)
15. {
16. printk(KERN_ALERT "Hello, How are you. %d/n", i);
17. }
18. return 0;
19.}
20.
21.static void __exit yuer_exit(void)
22.{
23. printk(KERN_ALERT"I come from yuer's mole, I have been unlad./n");
24.}
25.
26. mole_init(yuer_init);
27. mole_exit(yuer_exit);

我們的源文件就准備的差不多了,這就是一個linux下的模塊的基本結構。第9行是導出我們的符號變數nbr。這樣在你載入這個模塊的時候可以動態修改這個變數的值。稍後將演示。yuer_init()函數將在模塊載入的時候運行,通過輸出的結果可以看到我們的模塊是否載入成功。

第二步:編寫Makefile文件

首先還是來看看我們Makefile的源文件,然後我們再來解釋;

Makefile
obj-m := moles.o #要生成的模塊名
moles-objs:= mymod.o #生成這個模塊名所需要的目標文件

KDIR := /lib/moles/`uname -r`/build
PWD := $(shell pwd)

default:
make -C $(KDIR) M=$(PWD) moles

clean:
rm -rf *.o .* .cmd *.ko *.mod.c .tmp_versions

ARM平台
Makefile

obj-m += mymod.o
KDIR := /home/workspace2/kernel/linux-2.6.25 #如果是用於arm平台,則內核路徑為arm內核的路徑
PWD = $(shell pwd)
all:
make -C $(KDIR) M=$(PWD) moles
clean:
rm -rf *.o

在arm板上插入是
insmod mymod
如果出現以下錯誤
insmod: chdir(/lib/moles): No such file or directory
則運行
mkdir /lib/moles/2.6.25 (與arm內核版本相同)
並將mymod.ko文件復制到該目錄下
cp mymod.ko /lib/moles/2.6.25
然後再執行 (insmod 只在/lib/moles/2.6.25目錄下查找相關驅動模塊)
insmod mymod

現在我來說明一下這個Makefile。請記住是大寫的Makefile而不是小寫的makefile;
obj-m :這個變數是指定你要聲稱哪些模塊模塊的格式為 obj-m := <模塊名>.o
moles-objs :這個變數是說明聲稱模塊moles需要的目標文件 格式要求 <模塊名>-objs := <目標文件>
切記:模塊的名字不能取與目標文件相同的名字。如在這里模塊名不能取成 mymod;
KDIR :這是我們正在運行的操作系統內核編譯目錄。也就是編譯模塊需要的環境
M= :指定我們源文件的位置
PWD :這是當前工作路徑$(shell )是make的一個內置函數。用來執行shell命令。

第三步:編譯模塊

現在我們已經准備好了我們所需要的源文件和相應的Makefile。我們現在就可以編譯了。在終端進入源文件目錄輸入make
運行結果:
make[1]: Entering directory `/usr/src/linux-headers-2.6.24-24-generic'
CC [M] /home/yuqiang/桌面/mymole/mymoles.o
LD [M] /home/yuqiang/桌面/mymole/moles.o
Building moles, stage 2.
MODPOST 1 moles
CC /home/yuqiang/桌面/mymole/moles.mod.o
LD [M] /home/yuqiang/桌面/mymole/moles.ko
make[1]: Leaving directory `/usr/src/linux-headers-2.6.24-24-generic'

第四步:載入/卸載我們的模塊

從上面的編譯中我可以看到。已經有一個moles.ko生成了。這就是我們的模塊了。現在我們就可以來載入了。
首先在終端輸入:sudo insmod moles.ko
現在我們來看看我們的模塊載入成功沒有呢?
在終端輸入:dmesg | tail -12 這是查看內核輸出信息的意思。tail -12 顯示最後12條;
顯示結果如下:
[17945.024417] sd 9:0:0:0: Attached scsi generic sg2 type 0
[18046.790019] usb 5-8: USB disconnect, address 9
[19934.224812] Hello, How are you. 0
[19934.224817] Hello, How are you. 1
[19934.224818] Hello, How are you. 2
[19934.224820] Hello, How are you. 3
[19934.224821] Hello, How are you. 4
[19934.224822] Hello, How are you. 5
[19934.224824] Hello, How are you. 6
[19934.224825] Hello, How are you. 7
[19934.224826] Hello, How are you. 8
[19934.224828] Hello, How are you. 9

看到了吧。我們的模塊的初始化函數yuer_init();已經成功運行了。說明我們的模塊已經載入成功;
現在我們再來卸載模塊試試看。
在終端輸入:sudo rmmod moles
在終端輸入:dmesg | tail -3
[19934.224826] Hello, How are you. 8
[19934.224828] Hello, How are you. 9
[20412.046932] I come from yuer's mole, I have been unlad.

可以從列印的信息中看到,我們的模塊的退出函數已經被執行了。說明我們的模塊已經被成功的卸載了。到目前位置我們就已經算是對模塊的編譯到編譯運行算是有了一個整體上的認識了。對於以後深入的學習還是應該有點幫助的。下面我們將在看看於模塊相關的一些簡單的操作。

第五步:載入模塊時傳遞參數
在終端輸入:sudo insmod mole_name.ko nbr=4
在終端輸入:dmesg | tail -6
顯示結果如下:
[20800.655694] Hello, How are you. 9
[21318.675593] I come from onefile mole, I have been unlad.
[21334.425373] Hello, How are you. 0
[21334.425378] Hello, How are you. 1
[21334.425380] Hello, How are you. 2
[21334.425381] Hello, How are you. 3

這樣我們就可以看到在模塊載入的時候動態設置了我們的一個變數。初始化函數中的循環只執行了4次。
可能你會問我怎麼知道一個模塊可以設置那些變數呢。當然,你可以先不設變數載入一次。然後可以在終端輸入ls /sys/mole/<moles_name>/parameters/來查看。在這里我們是這樣輸入的
在終端輸入:ls /sys/moedle/moles/parameters/
顯示結果:
nbr

如果我們的模塊載入成功了。最後我們還可以通過modinfo來查看我們的模塊信息。如下
在終端輸入:sudo modinfo moles.ko
顯示結果:
filename: moles.ko
license: GPL
author: Yu Qiang
srcversion: 20E9C3C4E02D130E6E92533
depends:
vermagic: 2.6.24-24-generic SMP mod_unload 586
parm: nbr:int

㈦ Nginx基礎篇----虛擬主機、日誌、模塊、請求限制

在企業中,我們有很多的業務服務A,B,C等等,按照最最傳統的財大氣粗方式就是在一台機器上搭建一個Nginx,並且一個Nginx只為一個業務進行服務,如下圖所示,我們有3個業務服務,我們就在3個機器上搭建3個Nginx,這顯然是很浪費資源的一種不合理方式。

  虛擬主機的方式是指,我們在同一個Nginx上運行多套單獨服務,而且這些服務是獨立的,如下圖所示:

  基於主機多IP的方式有兩種:

第一步 :在單網卡上添加多個IP--ip a add ip地址 設備名
第二步 :我們找到nginx.conf中的http中的include的配置,找到其include的文件路徑
第三步 :找到默認配置文件,進行復制,將server中的listen進行改動,改為ip:port,在這里如果我們要為3個業務服務的話,我們就設置三個.conf的配置文件,每個配置文件中的ip不同即可。
第四步 :nginx -s stop -c /etc/nginx/nginx.conf
nginx -s表示給nginx的主進程發送信號,停止應用。-c表示啟動的時候使用哪個配置文件。

第一步 :我們找到nginx.conf中的http中的include的配置,找到其include的文件路徑
第二步 :找到默認配置文件,進行復制,將server中的listen 埠進行改動即可,每個配置文件中的埠不同即可。
第三步 :nginx -tc /etc/nginx/nginx.conf 對剛才修改的配置文件進行語法檢查
第四步 :nginx -c /etc/nginx/nginx.conf 啟動nginx

更改server_name

  Nginx的日誌類型有error.log和access_log兩類。error.log用於記錄錯誤類型的日誌,access_log記錄的是請求訪問的相關的日誌。Nginx使用了log_format把各種類型的變數進行組織,然後記錄到access_log當中去。
  log_format只能配置到http模塊下,所以我們看到nginx.conf中,會看到log_format的使用方式如下圖所示:

  Nginx的模塊分為官方的模塊和第三方的模塊,我們可以通過命令行nginx -V看到很多的--with-XXXX,這些就是Nginx中的模塊。

  編譯選項--with-http_stub_status_mole,用於展示Nginx當前處理連接的狀態。這個模塊默認是沒有打開的,它必須要用戶顯示的server和location模塊中進行配置。

  我們在nginx.conf中配置好後,通過IP:PORT/mystatus進行訪問,會看到以下結果:

該模塊使用的比較少,它表示是從目錄中隨機選取一個主頁。語法規則 random_index on | off,默認情況下是random_index off;只能放在location的上下文中。

這個模塊也用的不多,它主要用於對http的響應內容作替換。包含了很多用法:
  sub_filter string replacement 默認是不開啟的,可以用在http,server,location中,作用是替換html中的字元。
  sub_filter_last_modified on | off,默認是off,可以用在http,server,location中,作用是否阻止response header中寫入Last-Modified,防止緩存,默認是off,即防止緩存。
  sub_filter_once on | off,默認是on,可以用在http,server,location中,作用sub_filter指令是執行一次,還是重復執行,默認是只執行一次。

  Nginx中可以對連接頻率和請求頻率做限制。其中連接頻率限制的模塊是limit_conn_mole,請求頻率限制的模塊是limit_req_mole。
  請求和連接到底有什麼區別呢?我們知道HTTP協議是建立在TCP協議之上的,客戶端在向服務端發起請求的時候,必須先建立三次握手連接,建立完連接之後才開始發送請求,為了保持這個連接我們使用FIN和ACK,這樣就可以在一個連接中多次發起請求,因此我們可以說HTTP請求建立在一次TCP連接基礎上,一次TCP請求至少產生一次HTTP請求。

  連接限制的語法:
  定義空間:
  limit_conn_zone key zone=name:size 默認是沒有的,只能在http中配置,如果說我們想對用戶的IP地址做限制,那麼這里的key我們可以配置成$remote_addr,這里的name可以隨便命名,size設置大小
  limit_conn zone number;這里的zone必須和上面的limit_conn_zone中的name對應,number表示的是連接數,默認是沒有的,可以在http,server,location中配置。
  請求限制的語法:
  定義空間:
  limit_req_zone key zone=name:size rate=rate默認是沒有的,只能在http中配置
  limit_req zone name [burst=number] [nodelay];這里的zone必須和上面的limit_req_zone中的name對應,number表示的是連接數,默認是沒有的,可以在http,server,location中配置;burst爆發的意思,這個配置的意思是設置一個大小為N的緩沖區,當有大量請求(爆發)過來時,超過了訪問頻次限制的請求可以先放到這個緩沖區內;nodelay,如果設置,超過訪問頻次而且緩沖區也滿了的時候就會直接返回503,如果沒有設置,則所有請求會等待排隊.

  $binary_remote_addr是限制同一客戶端ip地址,binary_remote_addr和remote_addr其實是一樣的,但是binary_remote_addr要更節省空間。1m 可以儲存 32000 個並發會話。zone=req_zone:1m表示生成一個大小為1M,名字為req_one的內存區域,用來存儲訪問的頻次信息;rate=1r/s表示允許相同標識的客戶端的訪問頻次,這里限制的是每秒1次,還可以有比如30r/m的。這里我使用abtest來演示一下各種情況:

配置每秒鍾最多一次請求:

使用abtest發起請求,設置並發數20,發起20次請求。測試結果,成功1次,失敗19次,符合預期:

查看nginx錯誤日誌,圖中剛好有19個error記錄,而且是被限制了,符合預期:

設置一個大小為3的緩沖區,超過訪問頻次限制的請求將會放入到緩沖區中:

使用abtest發起請求,設置並發數20,發起20次請求。測試結果,成功4次,失敗16次,符合預期,因為第一次成功後,超過了請求限制,放了3個請求到緩沖區中,所以總共成功4個:

查看nginx錯誤日誌,圖中剛好有16個error記錄,而且是被限制了,符合預期:

設置最大連接數為1:

使用abtest發起請求,設置並發數20,發起20次請求。測試結果,成功20次,失敗0次,符合預期:

查看nginx錯誤日誌,無任何錯誤日誌,符合預期。

  nginx的http_access_mole模塊實現的,相關語法如下圖所示:

~表示模式匹配,這里我們表示凡是訪問admin.html的請求,阻止180.158.232.219的訪問,同時允許所有的IP訪問。結果如下圖所示:

請求成功:

  是nginx的http_auth_basic_mole模塊實現的,使用方式可以具體參考 http://nginx.org/en/docs/http/ngx_http_auth_basic_mole.html 這里不再贅述
  Nginx的基礎篇就講到這里,歡迎大家指正,下一篇文章我將介紹如何使用Nginx作為靜態資源Web服務。

㈧ delphi 如何安裝第3方控制項

由於組件提供的方式不同,所以安裝的方法也是不一樣的,下面就目前常見的各種形式的組
件的安裝方法介紹一下。

1隻有一個DCU文件的組件。DCU文件是編譯好的單元文件,這樣的組件是作者不想把源碼公
布。一般來說,作者必須說明此組件適合Delphi的哪種版本,如果版本不對,在安裝時就會
出現錯誤。也正是因為沒有源碼,給使用者帶來了不便,那就是一旦Delphi版本升級,此組
件就不能再使用了,當然有的作者給出了幾種版本的DCU文件,用戶根據需要選擇使用。這
樣的組件的安裝方法是:在Component菜單中,選擇install component,在對話框中的
"into existing package"頁中,單擊「Unit file name」後的「Browse」按鈕,在打開的
文件對話框中,將「文件類型」設定為*.dcu,找到要安裝的DCU文件,按OK按鈕返回
"into existing package"頁後再按OK按鈕就可以安裝了。注意,此時Delphi會提示
dclusr40.dpk將被重建,是否繼續,OK就可以了。這里是將組件安裝到dclusr40.dpk包中,
此包從文件名上可以看出是用戶自定義組件包,先安裝到這個包中吧,下面再講有關注意
事項。安裝完畢會有已經將組件注冊完的提示信息以及安裝到哪個組件頁中的信息等,到
組件面板上看看,一般會出現一個新的組件頁,其中有剛安裝的組件。

2、只有PAS文件或既有PAS又有DCU文件的組件。這種組件因為有PAS文件,也就是說作者提
供了源碼,這就好辦多了。安裝的方法和上面是一樣的,在文件類型中可以設定為DCU也可
以設定為PAS,建議設定為PAS,這樣可用你的Delphi重新編譯一下,看是否會出現問題。
Delphi升級後只能選擇PAS文件安裝,這樣才能重新編譯,使得組件能適應新Delphi版本。
這樣的組件是很值得使用的,根據心鈴的經驗,沒有源碼的組件最好不要使用,一是存在
Delphi版本升級後無法使用的問題,再者當程序出現問題後用戶無法調試組件來判斷是否
是組件中存在BUG。

3、有dpk文件的組件包。帶有dpk文件的組件包一般是有多個組件構成的,也就是說安裝後
會有多個組件供使用,如果只有一個組件作者一般不會製成DPK文件,使用上面的方式發布
就可以了。對於這樣的組件包,一般來說會有詳細的安裝說明文件,如上面提到的RXLIB,
由於組件復雜且安裝時有先後順序,作者不提供安裝說明用戶根本無法正確安裝。如果沒
有安裝說明文件,那麼用下面的方法安裝:在File菜單下,選擇」OPEN…」打開dpk文件
(文件類型列表框中選*.dpk),在出現的Package窗口中,工具欄上有Install按鈕,按此
按鈕即可進行安裝。如果Install按鈕處於無效狀態,那麼先按Compile按鈕編譯,一般
來說編譯之後Install按鈕就會處於有效狀態,此時再按Install按鈕就可以了。

4、帶有Bpl文件的組件包。一般來說這也是由多種組件構成的組件包,它其實是一個動態
連接庫文件(DLL)。對於這種組件包的安裝方法是:在component菜單下選擇
「install packages」,然後單擊Add按鈕,在打開的文件對話框中找到相應的bpl文件打
開返回後,再單擊Ok按鈕就可以了。

5、ActiveX控制項的安裝。要安裝這類控制項,需要先用regsvr32.exe注冊,然後選擇
Component菜單中Import ActiveX Control項。在Import ActiveX Control打開的窗口中,
只有已經注冊的ActiveX控制項才出現在列表中,選中一個然後按Install按鈕就可以安裝了。
如果事先沒有用regsvr32.exe注冊也可以按ADD按鈕找到OCX文件即時注冊,注冊後再進行
安裝。

幾點說明:1 在拿到組件後先看是否有說明文件,一般來說在說明文件中有如何安裝的
指導,有些還會有組件的屬性、事件、方法的使用說明,這些在使用時是非常重要的。
2 在上面的組件(包)安裝操作之前,最好將 *.bpl拷貝到你的System目錄中,將
*.pas、*.dcu、*.dcr、*.dp?拷貝到Delphi的Lib目錄中再進行。3 前面我們提到安
裝DCU組件時,選用的是已經存在的dclusr40.dpk,當然也可以選擇安裝到一個新的包中,
如果選擇新包,需要先取一個名字比如DEMO,事實上安裝完畢後用戶可以找到的是
Demo.bpl,而找不到DEMO.DPK。假如你已經將一個組件安裝到dclusr40.dpk中了,還想再
安裝一個組件,如果再安裝到dclusr40.dpk中,安裝後你得到提示,原來安裝的那個組件
已經被取消注冊,你將無法使用了。這樣不就成了只能安裝一個組件了嗎?除非你再安裝
到一個新的包中才可以兩個組件同時使用。當然每安裝一個組件生成一個新的BPL文件也
未償不可,但BPL文件就增加許多。能否在dclusr40.dpk中多安裝幾個組件呢?當然是可
以的。方法如下:用File菜單下的OPEN打開dclusr40.dpk文件,單擊ADD按鈕,在打開的
對話框中選擇ADD UNIT頁面,按Unit file name後的「Browse」按鈕打開組件單元文件,
OK即可,用此種方法這樣可添加多個組件的單元文件,添加完畢,按一下編譯按鈕,然後
再按Install按鈕即可,如果單元文件是編譯好的(DCU)可以直接按安裝按鈕。4 組件的
刪除。光會安裝可不行,還要會刪除呀。很簡單,在component菜單下,選擇
install packages,在列表中找到安裝所在的Bpl,按Remove按鈕,ok!再把Bpl文件刪掉
就徹底了,如果不刪除BPL文件,下次可以按安裝BPL組件的方法再安裝使用。

㈨ 易語言里3個編譯各有什麼用

第一個編譯是你編好程序後只能在你自己電腦上或者有易語言的電腦上才能用,第二個靜態編譯這個是我們用的最多的,它可以把你編好的程序所用的代碼打包,這樣你在給別人發送後對方直接就能用了,最後一個我們應該用不到,那個直接生成的是一個安裝程序的,那個得花錢買正版人才能用。

熱點內容
伺服器運維看什麼書 發布:2025-07-14 01:07:32 瀏覽:988
密碼器動態密碼怎麼弄 發布:2025-07-14 00:44:27 瀏覽:386
小米怎麼把視頻加密 發布:2025-07-14 00:42:59 瀏覽:406
在線申訴找回密碼根本什麼都沒有 發布:2025-07-14 00:41:22 瀏覽:306
拉新用什麼安卓手機可以 發布:2025-07-14 00:41:19 瀏覽:418
androidhome鍵退出 發布:2025-07-14 00:30:03 瀏覽:506
我都世界模組反編譯教程 發布:2025-07-14 00:29:45 瀏覽:646
法因數控鑽床編程手冊 發布:2025-07-14 00:18:26 瀏覽:490
gcc編譯怎麼知道錯誤的行數 發布:2025-07-14 00:06:21 瀏覽:383
壓強演算法 發布:2025-07-14 00:02:52 瀏覽:552