文件操作命令 |
文件/文件夾的創(chuàng)建、修改、復制、刪除、移動等等。(如rm/mv/vi/cat等等) |
網(wǎng)絡設置命令 |
個性IP、開啟FTP、開啟Telnet、開啟SSH等等。(如ifconfig/telnetd等等) |
用戶管理命令 |
系統(tǒng)用戶的添加、刪除、密碼修改等等。(如,addusr/passwd等等) |
文件編譯命令 |
這個涉及到編譯環(huán)境的建立,將在后面正式進入到自主程序設計時進行詳細介紹。 |
這個涉及到編譯環(huán)境的建立,將在后面正式進入到自主程序設計時進行詳細介紹。
雖然目前Fedora為用戶提供了比較良好的操作界面,但是Linux最初是從命令行的操作系統(tǒng)發(fā)展起來的,很多強大的功能都是需要依靠Terminal控制終端來實現(xiàn)的,所以作為開發(fā)人員有必要先對這些基本命令進行熟悉并熟練操作。
3.2編程工具簡介
如果在安裝Fedora的時候,選擇的是完全安裝,系統(tǒng)會自帶很多開發(fā)工具。其中Fedora -Eclipse CDT和Qt庫及相關設計器Qt Designer是我們今后開發(fā)的主要工具。
當然,如果用戶沒有選擇安全安裝,則可以到網(wǎng)上下載到各類開發(fā)工具的安裝文件,并自己進行安裝。
3.2.1 Fedora-Eclipse CDT
在Fedora中執(zhí)行系統(tǒng)菜單【Application】--【Programming】--【Eclipse】
然后就可以看到Fedora Eclipse的啟動畫面
然后就是下面就是Eclispe的IDE環(huán)境了,有過Windows下的Java編程經(jīng)驗的人來說,這個界面是再熟悉不過了,完全可以直接過渡到Linux下的C/C++程序開發(fā)上來,這樣就極大地減少了程序員的學習周期。
Eclipse的好處,第一就是開源,第二就是免費,第三就跨平臺。
因為開源,所以可擴展性很強,Eclipse實際上就是一個萬能的程序開發(fā)環(huán)境,只需要在設置中對相關語言的庫進行引用并連接相應的編譯器,就可以對基于任何語言的程序進行開發(fā);因為免費,所以省去了注冊軟件等等瑣事。因為跨平臺,所以當用戶進行跨平臺程序設計的時候,可以極大減少學習周期。
Eclispe在Windows平臺下一般都是作為Java的開發(fā)環(huán)境,用來開發(fā)Java桌面應用程序和Jsp網(wǎng)頁應用程序甚至目前比較流行的Android手機終端軟件。在Linux下面對C/C++的庫編譯器進行了連接后,則成為Linux下的C/C++開發(fā)環(huán)境,在Linux下安裝JDK后則可以進行Linux下的Java程序設計,如果給Linux系統(tǒng)安裝tomcat網(wǎng)頁服務器,則可以進行Linux下的網(wǎng)頁應用程序開發(fā),如果給Linux安裝mysql數(shù)據(jù)庫服務,則可以進行數(shù)據(jù)庫連接操作等等(因為目前我們的目標主要是arm-linux窗口程序開發(fā),所以主要對C/C++進行研究)。
3.2.2 Qt庫及Qt界面設計軟件
如果只是編寫C/C++控制臺軟件,則只需要Eclipse CDT就完全可以解決。但是如果要進行窗體化編程,就需要引用一些開源的界面庫。例如目前比較流行的Qt庫。
Qt是諾基亞開發(fā)的一個跨平臺的C++圖形用戶界面應用程序框架。它提供給應用程序開發(fā)者建立藝術級的圖形用戶界面所需的所用功能。Qt是完全面向對象的,很容易擴展,并且允許真正地組件編程?;旧希琎t 同 X Window 上的 Motif,Openwin,GTK 等圖形界 面庫和 Windows 平臺上的 MFC,OWL,VCL,ATL 是同類型的東西,但Qt具有優(yōu)良的跨平臺特性、面向對象 、豐富的API、大量的開發(fā)文檔等優(yōu)點。
在Eclipse中對項目Build選項進行設置,對Qt庫進行連接,然后就可以進行Linux下的Qt程序進行開發(fā)了。
因為Eclipse沒有提供可視化的窗體程序設計器,所以需要借助第三方工具,QtDesigner可以很好的解決Qt的UI設計問題并編譯生成對應的*.h和*.cpp文件(具體的操作步驟將在下面的內容中詳細介紹)。
所謂“工欲善其事,必先利其器”,前面花了大量篇幅來介紹,都是為了“磨刀”,現(xiàn)在開始進入“砍柴”環(huán)節(jié)。下面將以Eclipse CDT作為開發(fā)環(huán)境來介紹Linux和arm-linux程序開發(fā)的一般方法。
四、使用Eclipse CDT開發(fā)Linux程序
4.1建立控制臺程序
用Eclipse CDT建立基于C++的“Hello World”控制臺程序。
打開Eclipse開發(fā)環(huán)境。執(zhí)行【File】--【New】--【C++ Project】
然后進入到C++ Project向導,有C++的Hello World模板
點擊Finish,然后Eclispe就會建立一個基于C++的HelloWorld項目,運行程序后,能夠在控制臺中輸出“Hello World”:
說明:如果是開發(fā)控制臺程序,則不需要進行任何其它設計,只需要直接編寫C++代碼即可,不用對編譯庫和編譯器進行設置,Eclipse已經(jīng)為我們自動完成了這些內容。
4.2建立Linux窗口程序
就像在Window環(huán)境下,如果要用C++開發(fā)窗口程序,我們一般需要使用Windows API或者MFC。同樣,在Linux環(huán)境下,我們可能在C++項目中引用Qt庫來進行Linux下的窗口程序開發(fā)。
在完整版的Fedora中,自帶了Qt的庫,在目錄/usr/lib下面:
系統(tǒng)默認自帶有兩個版本的Qt庫qt-3.3和qt4,一般我們用qt-3.3。
編寫窗口程序,我們只需要在建立了C++ Project的情況下,對C/C++ Build路徑進行設置,指向qt-3.3的庫即可。主要開發(fā)流程如下:
第一步:使用Eclipse CDT建立C++ Project。
第二步:設置Build路徑指向Qt。在項目管理器中右擊項目文件設置項目屬性,在C/C++ Build的Settings的Tool Settings中進行設置。
【GCC C++ Compiler】--【Directories】添加包含的文件路徑:/usr/lib/qt-3.3/include。這個是C++的編譯器包含的頭文件路徑,因為是建立的C++ Project,所以一定要設置。
【GCC C Compiler】--【Directories】添加包含的文件路徑:/usr/lib/qt-3.3/include。這個是設置C語言編譯器包含的頭文件路徑,因為有時候C++中會考慮到兼容一些C語言的語法和關鍵字,所以最好也進行相關設置。
【GCC C++ Linker】--【Libraries】添加編譯時引用的庫路徑:/usr/lib/qt-3.3/lib(注意:不要寫成include了)。并設置庫搜索命令參數(shù):qt-mt。
第三步:編寫引用了Qt庫的C++程序。
第四步:運行程序。
程序運行效果如下圖:
總結:通過上面對Linux下面的控制臺程序及窗口程序的介紹,我們已經(jīng)對Linux系統(tǒng)下的簡單程序開發(fā)流程有了簡單了解。下面開始介紹arm-Linux程序的開發(fā)。
五、使用Eclipse開發(fā)Arm-linux程序
5.1 Arm-linux硬件平臺
Arm-Linux機器采用的是飛凌嵌入式技術公司的FL2440開發(fā)板。在飛凌公司購買開發(fā)板的時候,會隨開發(fā)板一起贈送的相關入門教程《飛凌開發(fā)板配套教程》并附有一張光盤,里面有各種寫FL2440相關的開發(fā)資源。
在正式進入程序開發(fā)之前,先對FL2440開發(fā)板及arm-linux系統(tǒng)進行熟悉。
Fl2440開發(fā)板:熟悉Bootloader的使用方法、學會燒寫內核、燒寫文件系統(tǒng)等等。
Arm-linux系統(tǒng):熟悉利用一些文件系統(tǒng)和網(wǎng)絡設置相關的命令。如果你對Linux命令已經(jīng)有了一定了解,那么arm-linux上的命令也基本一樣。
(詳細操作過程請參考《飛凌開發(fā)板配套教程》一書)
5.2開發(fā)控制臺程序
主要開發(fā)流程圖如下:
在早期的開發(fā)環(huán)境方式中,是先用文本編輯器編寫c或者cpp文件,然后再直接在Linux機器上通過交叉編譯命令,編譯代碼文本文件并生成可執(zhí)行程序,然后將可執(zhí)行程序傳送到arm-linux板上,然后就可以在arm-linux機器上運行程序了。
現(xiàn)在的開發(fā)模式和早期的開發(fā)模式一樣,只是在編寫代碼的工具上進行了改進。早期編寫代碼的工具只要是能編輯文本的軟件就可以,甚至在Linux中通過終端的vi命令就可以搞定,Linux機器的職能僅僅是編寫代碼和編譯代碼?,F(xiàn)在則使用Eclipse CDT,可以在Linux機器上編寫C/C++代碼并進行調試,Linux機器基本上可以模擬arm-linux系統(tǒng)上除了一些硬件相關度高的應用程序(如驅動程序)之外的絕大部分其它程序的運行環(huán)境。
5.2.1使用Eclipse CDT編寫代碼
其實和用Eclipse CDT編寫Linux環(huán)境下的控制臺程序是完全一樣。除了在一些特別的場合,比如編寫驅動程序,需要注意差別外,其余的功能的實現(xiàn)方法基本上一樣。
這方面屬于程序設計的基本功,需要長期學習和積累,所以在此不再多述。
5.2.2建立交叉編譯環(huán)境
雖然生成程序的源碼是一樣的,但是在Linux機器上編譯生成的可執(zhí)行文件是不能在arm-linux系統(tǒng)上運行的,需要用arm-linux專用的編譯器進行編譯后,才能生成可在arm-linux系統(tǒng)上運行的可執(zhí)行文件,當然此時應用程序又顯然不能在Linux系統(tǒng)上運行了。
將交叉編譯工具cross-2.95.3.tar.bz2(可以到網(wǎng)上下載,也可以到開發(fā)板附帶的光盤資源中找到)通過共享目錄傳送到Linux系統(tǒng)中,然后在Linux系統(tǒng)終端中先進入其文件目錄,然后執(zhí)行解壓命令:
tar xjvf cross-2.95.3.tar.bz2
然后在/usr/local/arm文件目錄下可以看到解壓后的2.95.3的庫了,或者如果你解壓的是cross-3.4.1.tar.bz2的版本,那么將會在對應目錄下生成3.4.1的目錄。
然后設置環(huán)境變量。因為Linux機器上存在不止一種編譯器,為了避免環(huán)境變量沖突,最好新建一個賬號,比如新建賬號arm-linux-gcc,然后在對應的賬號目錄中找到.bash_profile文件,設置環(huán)境變量,編輯.bash_profile,在最后一行增加路徑(vi打開文本文件,按i表示insert修改文本文件,然后Esc退出insert模式,再shift zz表示保存退出文件,詳細的命令介紹可以到網(wǎng)上查閱相關資料):
export PATH=/usr/local/arm/2.95.3/bin:$PATH
可以通過echo $PATH來查看環(huán)境變量是否設置成功:
5.2.3編譯并運行程序
在編輯好了代碼文件并建立好了交叉編譯環(huán)境后,就開始編譯代碼生成可執(zhí)行程序,并移植到arm板上運行程序。
在Linux系統(tǒng)的終端中通過輸入arm-linux-gcc/arm-linux-g++來編譯C/C++文件。例如,我們對前面編寫的最簡單的CppHelloWorld.cpp文件進行編譯:
arm-linux-g++ CppHelloWorld.cpp –o CppHello
然后在對應目錄下會生成一個可在arm-linux系統(tǒng)上運行的應用程序CppHello。
然后通過SSH服務和FTP服務,將可執(zhí)行文件從Linux文件系統(tǒng)網(wǎng)絡傳送到arm-linux文件系統(tǒng)(在此用到了兩個小軟件SSH Secure和LeapFTP,在后面再對軟件的功能進行一下簡要介紹)。
然后在Windows機器上遠程登錄arm-linux系統(tǒng)開發(fā)板,并控制程序運行
注意:需要先通過chmod +x CppHello來告訴系統(tǒng)此文件是可執(zhí)行文件,然后再通過./CppHello來運行程序。
我們可以看到程序運行的結果:在屏幕上打印出一行字“Hello World”
5.3一些常用的軟件介紹
在上面介紹的一些操作中,在進行文件傳送的時候用到了一些軟件,在此進行簡要介紹。
LeapFtp
LeapFtp |
一個基于Ftp協(xié)議的文件互傳軟件。一般情況下,我們對arm-linux機器上開啟Ftp服務,然后就可以實現(xiàn)Windows機器和arm-linux機器之間文件互傳。 |
SSH Secure File Transfer Client |
一個基于SSH協(xié)議的文件互傳軟件,可以實現(xiàn)FTP的功能。雖然Linux機器和Windows機器之間可以通過共享目錄進行文件交互,但是因為共享目錄實際上相當于Linux機器的一個虛擬的外接設備,在每次編寫代碼保存后,系統(tǒng)都會重讀一次,給操作上造成一點小麻煩,所以建議使用SSH進行文件傳送。 |
SSH Secure Shell Client |
一個基于SSH的遠程登錄軟件,可以實現(xiàn)telnet功能。因為Fedora默認關閉了telnet功能,而采用更安全的SSH協(xié)議來實現(xiàn)telnet的相關功能。 |
三系統(tǒng)之間的主要網(wǎng)絡架構如下:
注意:
1.如果arm-linux系統(tǒng)的ftp和telnet連接不上,一般情況下是arm-linux默認沒有開啟相應的服務或者默認ip和windows機器不在同一網(wǎng)段??梢酝ㄟ^串口線將arm板連接到電腦上,然后打開超級終端,輸入命令vsftpd開啟ftp服務,輸入命令telnetd開啟telnet服務,ifconfig eth0 192.168.1.16設置IP到同一網(wǎng)段。
2.如果Linux系統(tǒng)的SSH連接不上,則一般情況下是Linux系統(tǒng)開啟了SSH的防火墻,則只需要在Linux系統(tǒng)中對防火墻進行相關設置,關閉針對SSH的防火墻。【System】--【Administration】--【Firewall】,然后勾選全能SSH。
還有一些其它軟件,比如小組協(xié)作時候,需要使用SVN進行代碼管理;還有遠程桌面VNC Viewer,可以進行遠程桌面控制(但是效果不太好,桌面顯示的延時好像比較嚴重)等等。
5.4開發(fā)arm-linux窗口程序
5.4.1建立Qt交叉編譯環(huán)境
在Linux系統(tǒng)中新建目錄/root/yizhi,然后將已經(jīng)編譯好的arm-QT庫復制到此目錄下面。
然后將上面那六個tar.gz壓縮文件解壓到/root/yizhi目錄。
在進行arm-linux下的Qt編譯的時候,也涉及到環(huán)境變量設置問題,所以我們也最好再新建一個賬戶,專門用于編譯arm-Qt程序。
例如,在Linux系統(tǒng)終端中添加用戶zsm,然后進入到/home/zsm中,對.bash_profile進行修改,設置環(huán)境變量:
在命令終端中l(wèi)s –a 顯示隱藏的所有文件 找到.bash_profile,輸入:
gedit .bash_profile
用geidt打開此文件后,在最后面添加下面的環(huán)境變量設置:
export PATH=/root/yizhi/qtopia-free-2.2.0/qtopia/bin:/root/yizhi/qtopia-free-2.2.0/tmake/bin:/root/yizhi/qtopia-free-2.2.0/qt2/bin:/usr/local/arm/2.95.3/bin:$PATH
export QTDIR=/root/yizhi/qtopia-free-2.2.0/qt2
export QTEDIR=/root/yizhi/qtopia-free-2.2.0/qtopia/
export LD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/lib:$LD_LIBRARY_PATH
export CC=/usr/local/arm/2.95.3/bin/arm-linux-gcc
export TMAKEDIR=/root/yizhi/qtopia-free-2.2.0/tmake
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
設置好后最好重新登錄此賬號,然后在終端中輸入echo $PATH來檢驗環(huán)境變量是否設置成功:
如果出現(xiàn)上面的輸出,則表示arm-linux平臺下的Qt交叉編譯環(huán)境的環(huán)境變量已經(jīng)設置成功。接下來就可以進行Qt程序開發(fā)了。
5.4.2編譯生成可執(zhí)行窗體程序
在3.2節(jié)中已經(jīng)寫好了一個單文件的項目QtHello,并在項目的src目錄下生成了一個QtHello.cpp文件,然后我們要做的就是利用arm-linux下的Qt編譯器對其進行編譯。
編譯Qt窗體項目比編譯普通控制臺項目要稍微麻煩一點,需要自己寫makefile來建立編譯規(guī)則,編譯如上的QtHello.cpp的makefile有如下模板:
############################################################################# # Makefile for building hello # Generated by tmake at 20:58, 2011/04/14 # Project: hello # Template: app ############################################################################# ####### Compiler, tools and options CC = arm-linux-gcc CXX = arm-linux-g++ CFLAGS = -pipe -Wall -W -O2 -DNO_DEBUG CXXFLAGS= -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -O2 -DNO_DEBUG INCPATH = -I. -I$(QTDIR)/include LINK = arm-linux-gcc LFLAGS = LIBS = $(SUBLIBS) -L$(QTDIR)/lib -lm -lqte MOC = $(QTDIR)/bin/moc UIC = $(QTDIR)/bin/uic TAR = tar -cf GZIP = gzip -9f ####### Files TARGET = QtHello HEADERS = $(TARGET).h SOURCES = $(TARGET).cpp OBJECTS = $(TARGET).o DIST = INTERFACE_DECL_PATH = . ####### Implicit rules .SUFFIXES: .cpp .cxx .cc .C .c .cpp.o: $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $ .cxx.o: $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $ .cc.o: $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $ .C.o: $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $ .c.o: $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $ ####### Build rules all: $(TARGET) $(TARGET): $(OBJECTS) $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(LIBS) dist: $(TAR) hello.tar hello.pro $(SOURCES) $(HEADERS) $(INTERFACES) $(DIST) $(GZIP) hello.tar clean: -rm -f $(OBJECTS) $(OBJMOC) $(SRCMOC) $(UICIMPLS) $(UICDECLS) $(TARGET) -rm -f *~ core ####### Sub-libraries ###### Combined headers ####### Compile $(TARGET).o: $(TARGET).cpp
用zsm賬號登錄(因為關于arm-Qt庫的編譯環(huán)境變量是在此賬號中設置的),然后執(zhí)行如下步驟:
1.將makefile模板文件放置到src目錄下面
2.用eclipse或者其它文本編輯器,修改makefile里面的TARGET一項為當前項目名稱
3.打開Teminal控制終端,進入到src目錄,輸入make
4.然后會在src目錄下面生成一個指定名稱相應的QtHello文件,這個就是arm目標板上的運行程序了。
5.將QtHello文件傳送到arm板并運行程序(詳細操作方法在4.2.3節(jié)中有介紹)。
在Windows機器上遠程登錄arm板,控制程序運行,然后可以看到arm板上運行的結果了。
六、高級Linux程序設計
前面所介紹的不管是控制臺還是窗體程序,都屬于單文件項目的范圍。而當程序的功能比較復雜時,則往往需要很多模塊和文件,這樣在向arm-linux上移植程序時會更加繁瑣一些,需要開發(fā)人員自己寫makefile,建立多文件的編譯規(guī)則。
因為我對此沒有進入深入一點的研究,所以只能提供下大致思路和在開發(fā)程序時遇到的一些常見問題及解決方案。如果今后有機會有時間的話,則會對makefile進行深入一點的研究,最好是能以Eclipse自己生成的makefile模板為基礎進行簡單的修改,然后就可以編譯生成arm板上的可執(zhí)行程序。
6.1多文件控制臺項目
多文件的控制臺程序的makefile可能會容易一些,自己也沒有研究過,以前在使用Magic C++編寫C++控制臺程序的時候,只需要對Magic C++生成的makefile模塊中的編譯器進行修改就可以輕松為多文件生成基于arm-linux平臺上的控制臺程序。
(關于如何對Eclipse的makefile模板進行修改,目前還沒有研究過,今后有時間研究的話,再補充上吧。)
6.2多文件Qt項目
目前只對簡單的多文件項目進行了嘗試:一個main函數(shù)文件,一個窗體頭文件,一個窗體實現(xiàn)文件。
6.2.1使用Qt Designer設置界面
在Linux系統(tǒng)中打開Qt Designer,然后進行可視化窗口設計。然后點擊保存為mydialog.ui文件。
打開mydialog.ui文件,發(fā)現(xiàn)其實只是一個xml文件:
顯然這個文件是不能直接被C++項目引用的,需要使用Qt Designer的編譯器進行編譯,生成和界面對應的h和cpp文件。
在Terminal終端里面運行以下命令:
uic xxx.ui -o xxx.h 生成.h文件
uic xxx.ui -i xxx.h -o xxx.cpp 生成.cpp文件
然后生成的mydialog.h和mydialog.cpp文件就是和mydialog.ui相對應的程序代碼文件了。可以在Eclipse項目中直接對此文件進行引用,就可以顯示對應的窗體了。
6.2.2多文件Qt開發(fā)時的一些經(jīng)典錯誤
經(jīng)典錯誤一:
“undefined reference to ……”
這是在引用Qt的庫時,產(chǎn)生了某些歧義,需要進行一些預先處理,生成和界面文件相對應的moc文件,關于問題的詳細介紹可以參考下面的帖子:
http://hi.baidu.com/asky007/blog/item/7aad95ccbee5ba1601e928d7.html
解決方案:
在Linux控制終端中進入到項目代碼文件目錄,執(zhí)行
qmake –project
qmake
make
然后此目錄下會生成一系列的文件,如moc_xx.cpp,moc_xx.o,src,src_pro等等。然后再到Eclipse中編譯此項目,則錯誤消失。
經(jīng)典錯誤二:
在Linux機器上能運行的Qt窗口程序,在arm-linux下的Qt編譯器下無法通過。
可能的問題是Qt庫版本問題,或者是有些Qt運行環(huán)境在Linux機和arm-linux機上有所不同,這就需要重新尋找新的代替解決方案。正是因為這些很多不確定的因素,所以在進行arm-linux界面程序開發(fā)時,需要經(jīng)常在編寫一段新代碼就要在arm板上進行測試,可以避免做太多無用功。
6.3關于makefile
關于多文件Qt項目向arm-linux系統(tǒng)上的移植,比較核心的技術應該就在makefile上吧,目前自己了解太少,只限于對模板的應用,所以下面的就寫不下去了。
下面有一篇到網(wǎng)上找到的關于makefile結構分析的帖子,今后有機會再研究吧。
http://blog.csdn.net/liang13664759/archive/2007/09/04/1771246.aspx
七、學習資料
關于Linux下的Qt開發(fā),在安裝了的Fedora里面有相關的本地reference和相關的源碼。如:Qt Assistant
關于arm-linux下的Qt開發(fā),安裝交叉編譯環(huán)境時候,也有相關文檔和源碼:
//**************************************************************************
結語:OK,寫到這里了。在上個學期就花過一段時間學習Linux,然后中斷了半年,這個學期又進行了深入的學習,把以前的內容和現(xiàn)在的內容串接起來了,終于有了比較清晰一點的思路和體會了,所以總結一下,也讓將來的自己再回頭學習時有一點借鑒吧。感謝胡師兄的一點一滴的指導。
標簽:鎮(zhèn)江 武漢 百色 自貢 丹東 滁州 六盤水 優(yōu)質小號
巨人網(wǎng)絡通訊聲明:本文標題《零基礎入門篇之Linux及Arm-Linux程序開發(fā)筆記》,本文關鍵詞 零,基礎,入門,篇之,Linux,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。