linuxtinyxml
『壹』 linux下使用tinyXml報錯error: 『class TiXmlNode』 has no member named 『LinkEndChid』。
額 看報錯是說類沒有成員LinkEndChid 你可以看看.h里的類聲明 看看成員名具體是啥
『貳』 這個linux程序的Makefile疑問求解
你要讀懂這個Makefile,要查兩樣東西,一樣是gcc文檔,一樣是Makefile的文檔。
先來說gcc的編譯選項問題:
-Wall是做檢查,比如語法錯誤啊,指針不一致,參數沒有用到之類的錯誤
關於 -Wno-format,在GCC的編譯選項中有以下解釋,你可以讀一讀,具體的方法你去man gcc,可以查到相關信息
-Wno-format-extra-args
If -Wformat is specified, do not warn about excess arguments to a
"printf" or "scanf" format function. The C standard specifies that
such arguments are ignored.
Where the unused arguments lie between used arguments that are
specified with $ operand number specifications, normally warnings
are still given, since the implementation could not know what type
to pass to "va_arg" to skip the unused arguments. However, in the
case of "scanf" formats, this option will suppress the warning if
the unused arguments are all pointers, since the Single Unix
Specification says that such unused arguments are allowed.
-Wno-format-zero-length (C and Objective-C only)
If -Wformat is specified, do not warn about zero-length formats.
The C standard specifies that zero-length formats are allowed.
關於-g,用於GDB調試,這個不用再說了吧。
-DDEBUG
實際上是用-D定義了一個名叫DEBUG的宏,初始值為1。
所以你的Makefile下面會有這么一段
ifeq (YES, ${DEBUG})
CFLAGS := ${DEBUG_CFLAGS}
CXXFLAGS := ${DEBUG_CXXFLAGS}
LDFLAGS := ${DEBUG_LDFLAGS}
else
CFLAGS := ${RELEASE_CFLAGS}
CXXFLAGS := ${RELEASE_CXXFLAGS}
LDFLAGS := ${RELEASE_LDFLAGS}
endif
表示如果是YES的值與DEBUG的值相等的話(不加$()指數字的值相等)用於調試手段,則會調用調試用的相關變數,如果是正式發行版,則會用REALEASE的相關變數,
你的第二個問題是關於Makefile的函數的,
basename表示取前綴函數,比如basename a.out 返回值為a,
而addsuffix是加後綴的函數addsuffix .o,a 返回值為a.o
不過建議你去看看Makefile的手冊。
『叄』 Linux字元串截取幾種方法
簡單介紹下Shell字元串截取的詳細方法,如截取指定字數、按指定的字元串截取、按指定要求分割。
一、Linux shell 截取字元變數的前8位,有方法如下:
『肆』 Linux 下C的字元串截取
先查找內容字元串都開始位置,就是 "<CUST_NAME>" 的下一個位置,記下來。然後找 </CUST_NAME>的開始位置,記下來,然後取字串。
『伍』 如何在centos7上安裝mysql
【安裝MySQL】
由於MySQL被Oracle收購了,所以CentOS 7的yum源中不再有正常安裝mysql時的mysql-sever文件,需要去官網上下載
# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
# rpm -ivh mysql-community-release-el7-5.noarch.rpm
# yum install mysql-community-server
上面的具體版本大家可以到MySQL網站的下載頁面,找到Yum Repository頁面,查找最新的版本名稱,替換上面的版本名稱即可。
成功安裝之後重啟mysql服務
# service mysqld restart
【安裝MySQL Workbench,失敗】
執行yum install mysql-workbench-community
系統進行各種檢查後,提示沒有安裝包。
在MySQL網站找了半天,找不到安裝包下載。最後還是在網上搜到了安裝包的獲取方法:
http://cdn.mysql.com/Downloads/MySQLGUITools/mysql-workbench-community-6.3.4-1.el7.x86_64.rpm
同樣,具體的版本號用的是根據執行yum install mysql-workbench-community的提示版本號。
然後開始等待下載。
完成後,再執行上面的安裝命令,開始安裝。發現,仍然不對。
仔細研究報錯,提示缺少proj和tinyxml。
再查下來,發現tinyxml不在官方yum上,需要配置EPEL源。
【配置EPEL(企業版Linux軟體附加包)】
執行yum install epel-release.noarch
安裝EPEL後執行yum repolist,如果顯示的信息裡面有epel,則安裝成功。
然後嘗試執行 yum install tinyxml,能夠安裝。
【安裝MySQL Workbench】
重新執行yum install mysql-workbench-community
系統提示依賴的軟體列表,並詢問是否下載安裝。感覺有門兒了。
確認後,系統下載依賴的包,然後安裝。
安裝完成後,在「應用程序」菜單的「編程」下,會出現MySQL Workbench的圖標。
大功告成!
『陸』 c++程序員需要學什麼
c++程序員需要學以下9點主要知識:
1. 語言基礎
我們要成為一個程序員,學的東西會很多很雜,但是最開始一定要從語言開始學習。
學習語言的目的就是打好基礎,特別是自學的,一定規劃好自己的學習路線,一步一個腳印學習下去。學習語言最關鍵的莫過於多讀書,但不能隨便找一本C++書籍就去讀了。
2. GUI
C++方面的GUI庫有很多種,比如MFC、WTL、wxWidgets、QT。
這些GUI庫都各有自己的特點,其實我們只要先了解一種就可以了,只要深入了解了一種GUI庫。
需要的時候再學習其他的就夠了,本質上都差不多,很快就可以上手了。
MFC雖然設計上有很多問題,但是作為入門還是不錯的,而且學習資料很多,碰到問題也好解決。
3. 數據結構和演算法
很多人都忽視了數據結構和演算法方面的知識,尤其是一些編程語言的庫做得非常好;幾乎不需要自己去實現一些數據結構和演算法,導致現在很多程序員不重視甚至忽略這方面的知識。
但是,當我們想讓我們的程序跑得更快、內存佔用更少的時候,這些知識就非常非常重要了。很多程序員都是剛開始的時候不重視這些,但是工作幾年後又來補習這些知識。
最開始可能不需要學習的太深入,但是基本的數據結構和演算法一定要知道。
4. 資料庫
學習資料庫的基礎知識,並且掌握一種資料庫使用。
推薦使用Oracle,而且最好不要用一些封裝好的介面。
而應該直接用Oracle提供的資料庫API,可能對資料庫了解的會更深入。
5. 並行
CPU主頻已經不能遵循摩爾定律了,現在CPU發展的趨勢是多核心。無論是多線程,還是多進程,都是為了更好地利用CPU的性能,提供更好的用戶體驗。這就要求我們如果要寫出高效的應用程序,必然要涉及到並行計算。多花些精力在並行計算上吧,一定會有豐富的回報。
6.網路編程
這里所指的網路編程是指socket編程。
現在C++的應用很多都是在做伺服器開發,如何開發一個高並發、大吞吐量、高穩定性的伺服器就是我們要考慮的了。
7. 設計模式
設計模式不是具體的技術,更多的是如何讓代碼更容易閱讀、更好擴展、更容易使用。
8. 庫的使用
C++標准庫僅僅提供了一些很基本的功能,所以我們經常會引入一些第三方庫。最著名的恐怕就是被稱為准標准庫的boost庫,它提供了我們編程中用到的各方面的技術,文本處理、演算法、網路、多線程、圖像處理等等,幾乎無所不包。
其它也有一些專注於某一方面的庫,比如ACE是網路通信方面的,TinyXML是解析xml的,OGRE是圖形渲染方面的。
9. 操作系統的知識
程序員需要了解的操作系統知識和普通用戶是不一樣的一個高手是需要深入了解操作系統的方方面面,而不是停留在使用層面。
至於應該了解哪些知識,Windows上的去看《Windows核心編程》,Linux的去看《深入理解Linux內核》,應該可以知道自己應該學什麼了。
以上都是學習C++游戲開發的前期准備,也就是打好基礎。上面都是基本功,看起來有點多,但是磨刀不誤砍柴工。這對於你後面學習游戲開發有非常大的幫助。總而言之,道路還是很艱辛的,且行且珍惜!!!
『柒』 ubuntu14怎樣編譯和調試linux0.11
編譯64位程序,不一定要編譯機器是64位的,但是32位機器默認安裝的gcc編譯環境還是不能用來編譯64位程序。編譯64位程序,需要加上-m64編譯器參數,默認安裝的gcc已經支持該參數,但是缺少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
『捌』 linuxmint 17 輸入法安裝
sudo add-apt-repository ppa:fcitx-team/nightly
sudo apt-get update
sudo apt-get install fcitx
安裝完成後注銷,重新登陸。
在軟體管理器中搜索安裝輸入特定語言所需的組件:
(1)簡體中文拼音:fcitx-sunpinyin(Sunpinyin輸入法引擎的fcitx封裝)或fcitx-googlepinyin或fcitx-pinyin。
(2)簡體中文五筆:fcitx-table-wubi(五筆輸入法)或fcitx-table-wbpy(五筆拼音輸入法)。
(3)繁體中文:fcitx-table-cangjie。
(4)通用的輸入法碼表: fcitx-table*,如:fcitx-table-erbi(二筆輸入法)。
將fcitx設為默認:
LinuxMint默認的輸入法框架是IBUS,所以要將默認輸入法框架改為fcitx。打開終端,輸入「sudo
im-config」,回車,輸入用戶密碼回車後即可打開輸入法配置對話窗口,單擊「OK」,在下一個彈出的窗口中單擊「Yes」,在接下來彈出的窗口中選中「fcitx」,單擊「OK」。注銷重新登錄後即可。
一般情況下系統會自動將fcitx設為開機啟動,否則,在「系統設置-開機和關機-自動啟動」中添加fcitx。
如果fcitx無法正常使用,在軟體管理器(mintInstall)中檢查一下fcitx的依賴是否安裝齊全(下面的包是針對KDE桌面的,Mint17尚未出KDE版的,所以搜索不到的忽略即可):dialog,fcitx-bin,fcitx-config-
common,fcitx-config-gtk,fcitx-data,fcitx-frontend-all,fcitx-frontend-
gtk2,fcitx-frontend-gtk3,fcitx-frontend-qt4,fcitx-libs,fcitx-mole-
dbus,fcitx-mole-kimpanel,fcitx-mole-lua,fcitx-mole-x11,fcitx-
moles,fcitx-ui-classic,im-config,libopencc1,libpresage-
data,libpresage1,libtinyxml2.6.2,presage。此外建議安裝的軟體包:fcitx-tools,fcitx-
m17n,kdebase-bin,plasma-widgets-addons。
『玖』 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
『拾』 linux下怎麼使用tinyxml庫
首先 你去報錯的對應位置查看 是否 真有這幾個庫文件,因為有些東西你自己安裝的話,不一定是在這些引用目錄下!