当前位置:首页 » 编程语言 » c语言tinyxml

c语言tinyxml

发布时间: 2025-03-11 01:12:39

① 要成为一个C/C++程序员要学哪些东西

1.语言
我们要成为一个程序员,学的东西会很多很杂,但是最开始一定要从语言开始学习,而学习语言最关键的莫过于选好一本书,学校的教材就算了,根本没有写 得好的。在此隆重推荐《C++ Primer》,这本书很厚,内容也很丰富,对知识的讲解不仅仅停留在表面。如果这本书能有耐心看完,语言方面基本就没有什么大问题了,对以后的学习也打 下了一个很好的基础。
2.GUI
C++方面的GUI库有很多种,比如MFC、WTL、wxWidgets、QT。这些GUI库都各有自己的特点,其实我们只要先了解一种就可以了, 只要深入了解了一种GUI库,需要的时候再学习其他的就够了,本质上都差不多,很快就可以上手了。MFC虽然设计上有很多问题,但是作为入门还是不错的, 而且学习资料很多,碰到问题也好解决。
3.数据结构和算法
很多人都忽视了数据结构和算法方面的知识,尤其是一些编程语言的库做得非常好,几乎不需要自己去实现一些数据结构和算法,导致现在很多程序员不重视 甚至忽略这方面的知识。但是,当我们想让我们的程序跑的更快、内存占用更少的时候,这些知识就非常非常重要了。很多程序员都是刚开始的时候不重视这些,但 是工作几年后又来补习这些知识。
最开始可能不需要学习的太深入,但是基本的数据结构和算法一定要知道。
推荐《数据结构(C语言版)》,在数据结构和算法的学习中,最好不要去关心面向对象方面的技巧,就用C语言来实现,这样能更关注于算法本身的内容。
4.数据库
学习数据库的基础知识,并且掌握一种数据库使用,推荐使用mysql,而且最好不要用一些封装好的接口,而应该直接用mysql提供的数据库api,可能对数据库了解的会更深入。
5.并行
cpu主频已经不能遵循摩尔定律了,现在cpu发展的趋势是多核心。无论是多线程,还是多进程,都是为了更好的利用cpu的性能,提供更好的用户体验。这就要求我们如果要写出高效的应用程序,必然要涉及到并行计算。多花些精力在并行计算上吧,一定会有丰富的回报。
6.网络编程
这里所指的网络编程是指socket编程。现在C++的应用很多都是在做服务器开发,如何开发一个高并发、大吞吐量、高稳定性的服务器就是我们要考虑的了。
7.设计模式
设计模式不是具体的技术,更多的是如何让代码更容易阅读、更好扩展、更容易使用。
8.库的使用
C++标准库仅仅提供了一些很基本的功能,所以我们经常会引入一些第三方库。最着名的恐怕就是被称为准标准库的boost库,它提供了我们编程中用 到的各方面的技术,文本处理、算法、网络、多线程、图像处理等等,几乎无所不包。其它也有一些专着于某一方面的库,比如ACE是网络通信方面 的,TinyXML是解析xml的,OGRE是图形渲染方面的。
9.操作系统的知识
程序员需要了解的操作系统知识和普通用户是不一样的,一个高手是需要深入了解操作系统的方方面面,而不是停留在使用层面。至于应该了解哪些知 识,windows上的去看《windows核心编程》,linux的去看《深入理解linux内核》,应该可以知道自己应该学什么了。

② 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}。大致改成这样

  1. ${OUTPUT}:${OBJS}
  2. ${AR}$@${LDFLAGS}${OBJS}${LIBS}${EXTRA_LIBS}
  3. #${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

热点内容
苹果服务器无法访问怎么办 发布:2025-05-01 15:11:13 浏览:852
领克座椅有哪些配置 发布:2025-05-01 15:08:58 浏览:456
脚本佛祖 发布:2025-05-01 15:06:45 浏览:317
php时间分 发布:2025-05-01 15:02:31 浏览:863
数据库一键安装 发布:2025-05-01 14:47:28 浏览:19
人生苦短我用python梗 发布:2025-05-01 14:44:12 浏览:722
房车水电配置需要什么 发布:2025-05-01 14:42:38 浏览:494
linux主设备号从设备号 发布:2025-05-01 14:41:44 浏览:784
实现一个简易的编译器 发布:2025-05-01 14:35:48 浏览:880
vivo如何关闭qq隐私密码锁 发布:2025-05-01 14:28:27 浏览:505