tinyxml編譯
1. 如何在CentOS上安裝並漢化Code:Blocks
安裝步驟
一、安裝wxWidgets
1.下載wxWidgets源碼包,地址:http://www.wxwidgets.org/downloads/
2.解壓。可以使用tar命令,CentOS里也可以直接用滑鼠右鍵操作
3.進入解壓後的目錄,打開終端,依次輸入以下命令
./configure (最好不要加上prefix參數,使用默認設置會比較有利於後面步驟的順利推進)
make (編譯。此過程相當漫長,可以打兩盤鬥地主再回來)
make install (安裝。)
安裝完成後,終端輸出如下提示:
The installation of wxWidgets is finished. On certain
platforms (e.g. linux) you'll now have to run ldconfig
if you installed a shared library and also modify the
LD_LIBRARY_PATH (or equivalent) environment variable.
這是說需要設置環境變數LD_LIBRAY_PATH(環境變數的作用是告訴系統尋找wxWidgets開發庫該去的路徑。因為操作系統的邏輯是,如果在我認為該去的路徑沒找到的我要的東西的話,我就會認為那個東西木有安裝),暫不關閉本大步中打開的終端。
二、設定環境變數LD_LIBRAY_PATH
參考鏈接:
ldconfig及 LD_LIBRARY_PATH http://www.linuxidc.com/Linux/2011-10/45744.htm
Linux環境變數修改和設置 http://www.linuxidc.com/Linux/2012-12/75495.htm
Linux export 命令 http://www.linuxidc.com/Linux/2012-10/72746.htm
依據上一大步最後得到的提示信息,綜合參考資料,我們作出以下操作,
1.仍在第一大步打開的終端,不改變目錄,輸入以下命令:
ldconfig (這完全是根據第一步最後的提示信息來的)
export -p (查看系統當前環境變數的值,此步僅為了和設置後的效果作對比,可省略)
可以看到現在,LD_LIBRAY_PATH的值是空的(結果中沒有此項的存在)。
2.繼續輸入命令:
./wx-config --libs
得到結果(安裝目錄不同結果會有小差異):
-L/root/Desktop/wxWidgets-2.8.12/lib
-pthread -Wl,-rpath,/root/Desktop/wxWidgets-2.8.12/lib
-lwx_gtk2_richtext-2.8 -lwx_gtk2_aui-2.8 -lwx_gtk2_xrc-2.8
-lwx_gtk2_qa-2.8 -lwx_gtk2_html-2.8 -lwx_gtk2_adv-2.8 -lwx_gtk2_core-2.8
-lwx_base_xml-2.8 -lwx_base_net-2.8 -lwx_base-2.8
3.在/etc目錄下找到文件profile,打開它,在裡面添加以下命令:
export LD_LIBRARY_PATH="…………"
引號里的內容為上一小步「./wx-config --libs」的執行結果。export命令用於編輯環境變數,如果你不知道該加在什麼位置,請在文件中隨意另找一條export命令,跟在他後面即可。保存profile文件。
4.還是在前面打開的終端,繼續輸入命令:
source /etc/profile (在不用重啟系統的情況下使profile修改的內容生效)
export -p (查看系統當前環境變數的值)
這回可以看到,LD_LIBRAY_PATH的值被成功設定為第2小步里「./wx-config --libs」的執行結果。
三、安裝codeblocks
1.下載codeblocks源碼包,地址:http://www.codeblocks.org/downloads/
2.解壓。
3.進入解壓後的目錄,打開新的終端,依次輸入以下命令
./configure --prefix=/usr/local/codeblocks (prefix參數用以指定安裝路徑。如果跳過了第二大步,則在此會得到沒有安裝wxWidgets的提示)
make (編譯。額,咱們繼續鬥地主……)
make install (安裝。)
OK,至此,Code::Blocks安裝圓滿完成。在任意目錄下打開終端,直接執行codeblocks命令即可運行Code::Blocks。
四、codeblocks漢化
1.下載codeblocks的漢化包,地址:
免費下載地址在 http://linux.linuxidc.com/
用戶名與密碼都是www.linuxidc.com
具體下載目錄在 /2014年資料/2月/5日/Hadoop公平調度器指南 PDF
下載方法見 http://www.linuxidc.com/Linux/2013-07/87684.htm
2.在/usr/share/ 或者/usr/local/share/
目錄下(看你在第三大步中是怎麼指定的prefix參數)找到codeblocks目錄(內含icons、images、lexers、scripts等
資源目錄以及一些壓縮包),並在該目錄下建立一個子文件夾:locale(注意 locale
全為小寫字母)。如果找不到,請看步驟3,否則直接看步驟4。
3.在桌面上打開終端,運行命令:locate codeblocks >codeblocks 。運行完畢後,在桌面生成了一個名為codeblocks的文件,打開該文件,從中找到codeblocks目錄所在的路徑。
4.將所下載的壓縮包解壓到第2步創建的locale目錄下,則locale目錄下應出現zh_CN子目錄,內有一個名為codeblocks.mo的文件。
5.
啟動Code::Blocks,點擊主菜單的「Settings」,選擇「Enviornment」。出現的對話框中,左邊選中「View」,右邊打勾
「Internationalization (needs restart)」,並在後面的復合框中選中「Chinese
(Simplified)」。確認退出本對話框。
6.重啟Code::Blocks。再看到的應該是中文簡體界面了。
主要糾結的問題
1.最早下了一套rpm包,然後在安裝到第四個包,libtinyxml0,的時候出現了包依賴問題:
error: Failed dependencies:
libstdc++.so.6(GLIBCXX_3.4.9) is needed by libtinyxml0-2.6.1-9.1.2.i586
rpmlib(PayloadIsLzma) <= 4.4.6-1 is needed by libtinyxml0-2.6.1-9.1.2.i586
這個問題困擾了我很久,搜了很多文檔來看都木有解決,最後就放棄了。歡迎知道怎麼辦的請給我留言,謝謝!
據資源的上傳者說,在OpenSUSE Linux下測試通過。如果你也使用這個系統,可以去這個鏈接看看:http://www.linuxidc.com/Linux/2014-02/97367.htm
2.根據看到的資料,我在安裝完wxWidgets之後直接安裝codeblocks,結果終端報錯,
configure: error:
wxWidgets must be installed on your system
but the wx-config script couldn't be found.
Please check that wx-config is in path, the directory
where wxWidgets libraries are installed (returned by
'wx-config --libs' command) is in LD_LIBRARY_PATH or
equivalent variable and wxWidgets version is 2.8.0 or above.
但是我明明已經安好了wxwidgets啊!找了好多資料,試了好多方法,都木有解決。後來仔細閱讀了wxwidgets安裝成功後的提示信息,拿來和codeblocks安裝初始化的報錯信息比對,才終於找到了症結所在:環境變數設置。
基本我看到的所有資料都沒提這個問題,但他確實很重要。由此我得到的結論是,網上資料固然多,按部就班問題亦多。若要順順利利,還請多看系統提示。
順手牽羊
1./etc/ld.so.conf
這個文檔記錄了編譯時使用的動態鏈接庫的路徑。默認情況下,編譯器只會使用/lib和/usr/lib
這兩個目錄下的庫文檔,如果想往上面兩個目錄以外加東西的時候,就需要在etc/ld.so.conf.d目錄下添加一個conf文件,把新路徑加進去,
然後再調用ldconfig。
又有一些文獻說,如果想往上面兩個目錄以外加東西的時候,一定要修改/etc/ld.so.conf文件,不然會系統找不到新庫。看完後我茫然了,後來我打開了ld.so.conf文件,裡面內容如下:
include ld.so.conf.d/*.conf
看完,我突然就懂了。
2.wxWidgets與wxGTK
wxwidgets 是一個c++編寫的用來提供gui開發的框架。它包含一個可以支持現今幾乎所有操作系統的GUI庫。而適用於Linux系統的就是wxGTK,Windows平台下的則叫做wxMSW。
3.使用tar命令時,壓縮包不能有「(」等非法符號
2. linux tinyxml2怎麼編譯
1.首先,要到官網上去把tinyxml庫下載下來,網址為:點擊打開鏈接:http://sourceforge.net/projects/tinyxml/
2.把下載的tinyxml庫解壓縮,我這里是解壓縮到/opt 目錄下
3.進入到解壓縮目錄下,我們會發現Tinyxml在Windows 下是使用微軟的VS 來生成的庫,因為其中有tinyxml.sln,tinyxml_lib.vcxproj,tinyxmlSTL.vcxproj等文件,當然,Tinyxml是開源的,所以它也有一個Makefile,用來生成Linux下的Tinyxml庫。整個Tinyxml源碼項目其實是由2個頭文件和一個4個C++源文件(.cpp)組成:tinystr.h,tinyxml.h,tinystr.cpp,tinyxml.cpp,tinyxmlerror.cpp,tinyxmlparser.cpp。其中還有一個xmltest.cpp文件,只是一個測試代碼,有興趣的話,大家可以打開研究它。好了,現在介紹怎麼修改它的Makefile:
(1)使用vim或者其他的編輯器打開Makefile文件
(2)將其中的注釋為Targets of the build的下一行OUTPUT := xmltest一行修改為:OUTPUT := libtinyxml.a
(3)將其中的注釋為Source files 的下一行SRCS:=tinyxml.cpp tinyxml-parser.cpp xmltest.cpp tinyxmlerror.cpp tinystr.cpp中的xmltest.cpp刪除,因為它只是一個測試源文件,不需要編譯。
(4)將其中的Output的下一行的${LD} -o $@ ${LDFLAGS} ${OBJS} ${LIBS} ${EXTRA_LIBS}修改為:${AR} $@ ${LDFLAGS} ${OBJS} ${LIBS} ${EXTRA_LIBS}。大致改成這樣
- ${OUTPUT}:${OBJS}
- ${AR}$@${LDFLAGS}${OBJS}${LIBS}${EXTRA_LIBS}
- #${LD}-o$@${LDFLAGS}${OBJS}${LIBS}${EXTRA_LIBS}
(5)將Makefile的倒數第二行 xmltest.o:tinyxml.h tinystr.h,注釋掉,因為不需要將演示程序添加到靜態庫中。然後保存退出。
(6)在終端下進入Makefile所在目錄,執行make命令編譯,即可在Makefile所在目錄下生成libtinyxml.a文件。
4.接下來就可以使用這個靜態庫了:$ g++ -o xmltest xmltest.cpp libtinyxml.a 注意:將使用的靜態庫放在源文件後面即可,如果靜態庫文件不在當前目錄,應該使用它的絕對路徑或者用g++的參數-L來指定路徑,因為編譯器默認在當前目錄下先查找指定的庫文件。
修改後的Makefile (v 1.0.1) 記錄如下:
[plain] view plain print?
#****************************************************************************
#
#MakefileforTinyXmltest.
#LeeThomason
#www.grinninglizard.com
#
#ThisisaGNUmake(gmake)makefile
#****************************************************************************
#,orNOotherwise
DEBUG:=NO
#,orNOotherwise
PROFILE:=NO
#TINYXML_USE_.NO,thenSTL
#willnotbeused.YESwillincludetheSTLfiles.
TINYXML_USE_STL:=NO
#****************************************************************************
CC:=gcc
CXX:=g++
LD:=g++
AR:=arrc
RANLIB:=ranlib
DEBUG_CFLAGS:=-Wall-Wno-format-g-DDEBUG
RELEASE_CFLAGS:=-Wall-Wno-unknown-pragmas-Wno-format-O3
LIBS:=
DEBUG_CXXFLAGS:=${DEBUG_CFLAGS}
RELEASE_CXXFLAGS:=${RELEASE_CFLAGS}
DEBUG_LDFLAGS:=-g
RELEASE_LDFLAGS:=
ifeq(YES,${DEBUG})
CFLAGS:=${DEBUG_CFLAGS}
CXXFLAGS:=${DEBUG_CXXFLAGS}
LDFLAGS:=${DEBUG_LDFLAGS}
else
CFLAGS:=${RELEASE_CFLAGS}
CXXFLAGS:=${RELEASE_CXXFLAGS}
LDFLAGS:=${RELEASE_LDFLAGS}
endif
ifeq(YES,${PROFILE})
CFLAGS:=${CFLAGS}-pg-O3
CXXFLAGS:=${CXXFLAGS}-pg-O3
LDFLAGS:=${LDFLAGS}-pg
endif
#****************************************************************************
#Preprocessordirectives
#****************************************************************************
ifeq(YES,${TINYXML_USE_STL})
DEFS:=-DTIXML_USE_STL
else
DEFS:=
endif
#****************************************************************************
#Includepaths
#****************************************************************************
#INCS:=-I/usr/include/g++-2-I/usr/local/include
INCS:=
#****************************************************************************
#
#****************************************************************************
CFLAGS:=${CFLAGS}${DEFS}
CXXFLAGS:=${CXXFLAGS}${DEFS}
#****************************************************************************
#Targetsofthebuild
#****************************************************************************
OUTPUT:=libtinyxml.a
all:${OUTPUT}
#****************************************************************************
#Sourcefiles
#****************************************************************************
SRCS:=tinyxml.cpptinyxmlparser.cpptinyxmlerror.cpptinystr.cpp
#Addonthesourcesforlibraries
SRCS:=${SRCS}
OBJS:=$(addsuffix.o,$(basename${SRCS}))
#****************************************************************************
#Output
#****************************************************************************
${OUTPUT}:${OBJS}
${AR}$@${LDFLAGS}${OBJS}${LIBS}${EXTRA_LIBS}
#${LD}-o$@${LDFLAGS}${OBJS}${LIBS}${EXTRA_LIBS}
#****************************************************************************
#commonrules
#****************************************************************************
#
%.o:%.cpp
${CXX}-c${CXXFLAGS}${INCS}$<-o$@
%.o:%.c
${CC}-c${CFLAGS}${INCS}$<-o$@
dist:
bashmakedistlinux
clean:
-rm-fcore${OBJS}${OUTPUT}
depend:
#makedepend${INCS}${SRCS}
tinyxml.o:tinyxml.htinystr.h
tinyxmlparser.o:tinyxml.htinystr.h
tinyxmlerror.o:tinyxml.htinystr.h
3. 64位linux下面的GCC如何編譯出一個32位可執行程序
在64位Linux環境下,使用GCC編譯32位可執行程序並不困難,但需要確保你的編譯環境具備相應支持。默認安裝的GCC編譯器可能無法直接編譯64位程序,因為缺少64位機器指令相關的文件,導致在編譯過程中出現類似錯誤:
"In file included from /usr/include/features.h:378, from /usr/include/assert.h:37, from ../../../include/tinyxml/tinystr.h:42, from ../../../src/tinyxml/tinystr.cpp:32: /usr/include/gnu/stubs.h:9:27: error: gnu/stubs-64.h: 沒有那個文件或目錄"
解決方法是安裝gcc所有支持文件,通過命令「sudo apt-get install gcc-multilib」進行安裝。安裝過程中,系統會提示需要安裝一系列額外的軟體包,例如:
cpp-4.4, g++-4.4, gcc-4.4, gcc-4.4-base, gcc-4.4-multilib, lib64gcc1, lib64gomp1, libc6-amd64, libc6-dev-amd64, libgcc1, libgomp1, libstdc++6, libstdc++6-4.4-dev
安裝這些軟體包後,你可以通過在編譯命令中加上-m32參數來指定編譯32位程序。例如,使用「gcc -m32 -o myprogram myprogram.c」來編譯32位程序。
需要注意的是,編譯32位程序需要確保目標系統支持32位架構。如果你的目標系統是32位的Windows XP,你可以使用上述方法編譯出能在32位系統上運行的程序;同樣地,對於64位的Windows Vista、32位的Ubuntu和64位的Ubuntu,也可以編譯相應的32位或64位程序。
然而,如果你在老師的題目中遇到困難,可能是因為具體的需求或條件未詳細說明。建議與老師進一步溝通,了解具體的題目要求,以確保正確理解和執行任務。
4. c++ signal/slots 開源庫有哪些
C++在「商業應用」方面,曾經是天下第一的開發語言,但這一桂冠已經被java搶走多年。因為當今商業應用程序類型,已經從桌面應用迅速轉移成Web應用。當Java橫行天下之後,MS又突然發力,搞出C#語言,有大片的曾經的C++程序員,以為C++要就此沉淪,未料,這三年來,C++的生命力突然被嚴重地增強了。主力原因就是開源的軟體、基礎軟體(比如並發原生支持,比如Android必定要推出原生的SDK)、各種跨平台應用的出現。
開源C++庫必須具有以下特點:必須是成熟的產品、跨平台的產品、相對通用的庫。
一、通用標准類
STL:C++標准模板庫,呵呵,它也是開源的嘛。
boost:C++准標准庫,它是強大地,江湖稱之「千錘百煉」。
deelx (輕量級的正則表達式解析類庫,國產),boost里有強大的正則表達式解析庫,但如果你只想要一個表達式解析,不想要拖上龐大的boost庫時……支持一下國貨。
iconv /iconvpp : (C形式的編碼轉換函數庫,
二、XML解析庫
C++的XML相關庫不少,但是大部分其實都是C庫,使用起來自然不那麼輕便。其中基於DOM的有TinyXml,基於SAX的當然是Xerces。前者小巧快捷,便於使用,適合做數據交換。後者則是全功能的XML解析器。
xerces-c :最強大的XML解析庫了,不是僅僅在開源庫里,你盡管把商業的算在內。當然,它的變體,被IBM拿去賣錢的那個版本,多了數百兆的東東來支持各國編碼轉換,是更強大,但我覺得有小小的,開源的iconv在前不就夠了?
xml相應的c開源庫有expat,基於SAX,應用廣泛。
xsd (XML 與 C++數據結構的綁定工具)。(商業使用要錢)
三、資料庫
mysql / mysql++: 不用介紹吧。現在Oracle手裡,但我很放心。
四、多媒體類
SDL (Simple DirectMedia Layer/多媒體直接訪問層,用於游戲編程)。
相應的c開源庫有ffmpeg、mpeg4、aac、avc、libmad、mpeg1、flac、ac3、ac3、matroska著名的多媒體播放器 TCPMP 天下聞名的跨平台、嵌入式手持設備視頻播放器,
五、網路開發類
gSOAP SOAP協議的C++支持庫及代碼生成工具。
ACE 大型網路編程的首選庫。
除了ACE之外,還有很多系統和網路編程方面的程序庫。比如在線程庫方面,還有ZThread、boost::thread,如果放大到C/C++領域,還有APR,還有CII。在文件和目錄操作方面,boost也有相應的組件,而在網路編程方面有socket++,還有boost::asio,未來的 C++0X中幾乎肯定有一個網路編程和一個線程庫。然而目前看來,ACE仍然是進行系統和高性能網路編程的首選,其地位在一段時間內不會被撼動。它不但是一個實用的程序庫、框架集,還是一個典範的設計模式應用範例,非常值得學習。
六、GUI庫
BCG Windows平台下界面設計的第三方庫,可以讓你的界面更美好,更具時 代感。
wxWidgets :使用wxWidgets ,開發者可以基於同一套代碼,為Win32, Mac OS X, GTK+, X11, Motif, WinCE等平台開發應用程序。wxWidgets庫可以被C++, Python, Perl, and C#/.NET等開發語言使用。跟其它有些同樣支持跨平台GUI開發工具不同,基於wxWidgets的應用,擁有真實本地化的視覺及使用效果——因為,wxWidgets使用(各)平台原生的控制項,而不是簡單通過貼圖去模擬。wxWidgets是使用廣泛的,自由的,開源的,成熟的。
QT-------------界面(GUI)開發,支持C++/Java/Python/...多種語言。跨平台。最主要的好處是,API非常優美!Qt本身也不僅僅只是做GUI編程,實際它基本上可以做OS-API可以做的任何事情。象網路/資料庫/OpenGL/...都提供完美的支持。
傳統上Qt被認為是可移植的GUI庫,但實際上Qt現在已經是一個比較完整的可移植應用程序框架了,其中包含了大量的工具,比如正則表達式、Web和 Socket類、2D和3D圖形、XML解析、SQL類等,甚至還包括了一個完整的容器類庫,不過其王牌還是GUI。在目前的跨平台GUI框架中,Qt成熟度最高,已經被一些大公司應用在關鍵產品中。由於Trolltech對Qt採用的al license模式,該產品既可以從開源社區獲得支持,又能夠賺取足夠的商業利潤,因此其前景也令人比較有信心。
Qt的主要技術特色是其元對象模型。Qt實際上使用的並不是標準的C++,而是標准C++的一個擴展。它通過元對象模型擴展,實現了著名的signal/slot機制,而這一機制也成為Qt的最大特色和優勢。
與Qt類似的可移植GUI框架還有wxWidget、FOX等
六. 計算機視覺
OpenCV,因特爾自主的開源庫。支持C/C++/Python介面。這個感興趣的朋友可以玩一下。如果結合OpenCV,你可以做一些外行人覺得很酷的程序。比如說用它的人臉識別函數,來對你的攝像頭進行處理,判斷人的動作等
七. 圖形圖像處理
GDAL,處理大圖像。要是GIS專業的人肯定會語言到非常大的tif影像,動則幾個GB的航空影像。GDAL對大圖像的讀寫支持是非常棒的(像多波段的圖像都可以搞定)。支持C++/Java/Python...
國外開源的GIS軟體QGIS就是用了gdal
c的圖形圖像庫較多,libjpeg、libpng、zlib、tiff、JBIG、最著名的開源形圖像處理軟體Cximage
八、內存管理:boost::smart_ptr,Hans-Boehm GC
C/C++的內存管理是一個永恆的話題。一般來說,C++的開發者傾向於自己管理內存。然而,出乎很多C++開發者意料的是,近期C++的一些領袖人物已經公開宣稱,如果不配備自動內存管理機制,用C++編寫安全可靠的大型程序是非常困難的。而Bjarne Stroustrup也曾對中國開發者建議,如果沒有特別的理由,應該在大型項目中使用自動內存管理工具。因此,今天的C++開發者應當積極地學習和應用自動內存管理設施。
說到自動內存管理,比較輕量級的做法是boost::smart_ptr,而激進的做法是引入完整的GC機制。目前開源而又比較可靠的GC中,Hans- Boehm GC無疑是最受信賴的。作為一個保守的GC,Hans-Boehm GC在性能和功能方面都算是卓越。特別是,使用這個GC,你仍然可以delete、free來自己管理內存,對於我們編程習慣的沖擊比較小。
九、密碼及安全:OpenSSL
安全是今天進行C/C++編程無法迴避和必須重視的問題。然而編寫安全的應用程序,特別是跟網路相關的C/C++應用程序,是一件十分困難的事情。可以說,整個業界目前在這個進程上仍然處於「初級階段」。特別是涉及到大量的安全、密碼學相關的演算法、規范,如果讓開發者自己摸索,其工作量和難度達到了不現實的程度。因此必須藉助可靠的相關程序庫才有可能提高程序的安全性。在這方面,OpenSSL是目前最好的選擇,其內容之全面可靠,已經成為業界標桿。然而,由於安全編程固有的復雜性,即使使用penSSL,開發工作仍然是非常繁瑣的。因此我們也希望能夠盡快看到更簡單、更易用的C/C++安全程序庫。
十、矩陣計算:MTL
自1995年以來,C++在科學計算領域當中取得了巨大的突破。這主要歸功於template技術的高級應用,使得C++在科學計算的性能方面取得了巨大的進步,一大批優秀的C++科學計算庫涌現出來。比如Blitz++、POOMA、MTL、Boost::uBLAS。而這其中,MTL就功能豐富程度、性能、開發支持和成熟程度來講,是比較突出的一個,因此可以優先考慮。值得一提的是,2002年,MTL與後來被Intel收購的KAI C++配合,曾經在性能評測中擊敗了FORTRAN。
十一、分布式對象中間件:ICE
ICE是分布式對象中間件領域里的後起之秀,可以大致地將其視為「改進版」的CORBA。目前應用在一些大型項目當中,其中包括波音公司主持的下一代陸軍作戰系統。
ICE的一個特別價值是其代碼的範例意義。由於ICE的出現較晚,開發者比較系統地應用了新的C++編程風格,所以成為了研讀C++代碼的良好目標。
十二、正則表達式:boost::regex
正則表達式是編程工作中最強有力的工具之一。C++的正則表達式支持一直以來是一個軟肋。大約在2001年左右,boost中出現了regex庫,初步解決了這個問題。但是最初的regex無論在效率上還是可靠性方面都有一些問題,後來經過一次大規模的翻修之後,達到了比較完善的程度。
其他可以選擇的替代品還有C語言的pcre庫,Qt中的QRegExp類等。
十三、配置管理:Lua
隨著軟體系統越來越復雜,對軟體的可配置型提出了越來越高的要求。傳統上只要通過命令行參數來配置的系統,現在可能需要越來越多的方式和機制。目前越來越受歡迎、並且得到越來越多證實的做法,是將Lua嵌入到C/C++程序中,而用Lua程序作為配置腳本。這種做法的優勢是,Lua語言強大靈活,可以適應復雜的配置要求。同時,Lua便於嵌入C/C++程序,而且編譯執行速度非常快,可以說是目前解決C/C++程序配置管理問題的一個出色方案。