欢迎来到天天文库
浏览记录
ID:35090376
大小:1003.99 KB
页数:284页
时间:2019-03-17
《CC++编程答疑解惑》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、C/C++编程答疑解惑1.C/C++编程1.1:遇到问题怎么解决A论坛的精华区也有相应的讨论,许多可以直接解决你的问题,也可以GOOGLE查找,并看看精华区。如果已找了GOOGLE并看了精华区,但是对某些方面不理解,那么就在论坛上发问。发问时标题要清楚,并把你的问题描述清楚。许多人不会看你帖子的内容,所以在标题中写清楚问题也是很重要的。如果要粘贴代码,那么使用发言功能中的CODE功能,这样可以保证代码不会乱,能有更多人看懂你代码。当别人准确回答了你的问题时,应该说声谢谢,表示这个问题已回答,并表示对帮助你的人的感谢。这样会让更多的人觉得你的一个好学有礼貌的人,
2、从而会更注意你的问题。如果你按上面这些方法做了,并不能保证你的发言一定能回答,因为不是每个人什么问题都知道,但可以保证会有更多人关注你的问题,回答的可能性会更高。1.2:STLstring怎么转换大小写A:使用STL算法中的transform函数代码: stringstr22="ThisISaMiXedCaSEstRINg"; transform(str22.begin(),str22.end(),str22.begin(),tolower);1.3:怎样生成动态库A:创建步骤:首先创建object文件,这个文件将加入通过gcc–fPIC参数命令加入到共享
3、函数库里面。PIC的意思是“位置无关代码”(PositionIndependentCode)。下面是一个标准的格式:代码:gcc-shared-Wl,-soname,your_soname-olibrary_namefile_listlibrary_list下面再给一个例子,它创建两个object文件(a.o和b.o),然后创建一个包含a.o和b.o的共享函数库。例子中”-g”和“-Wall”参数不是必须的。代码:gcc-fPIC-g-c-Walla.cgcc-fPIC-g-c-Wallb.cgcc-shared-Wl,-soname,liblusterstu
4、ff.so.1-oliblusterstuff.so.1.0.1a.ob.o-lc下面是一些需要注意的地方:·不用使用-fomit-frame-pointer这个编译参数除非你不得不这样。虽然使用了这个参数获得的函数库仍然可以使用,但是这使得调试程序几乎没有用,无法跟踪调试。·使用-fPIC来产生代码。使用shared说明生成动态库,使用soname说明生成的库名·某些情况下,使用gcc来生成object文件,需要使用“-Wl,-export-dynamic”这个选项参数。通常,动态函数库的符号表里面包含了这些动态的对象的符号。这个选项在创建ELF格式的文件时
5、候,会将所有的符号加入到动态符号表中。可以参考ld的帮助获得更详细的说明。star3s补充:对于C++程序要使用EXTERN“C”说明输出接口代码: extern"C" { intsoTest(inta,intb); } intsoTest(inta,intb) { returna+b; }1.4:怎样指定程序链接某个库的动态库或静态库版本A:使用Bdynamic和-Bstatic选项。默认情况下,假如共享库可用,连接器会使用共享库。但是-Bdynamic和-Bstatic提供了很好控制库的方法。它们可以决定用共享库还是用静态库。传-Bdy
6、namic和-Bstatic选项给连接器,如下操作:#gcc-omainmain.o-Wl,-Bstatic-lfoo-Wl,-Bdynamic-lbar#gcc-omainmain.o-Wl,-Bstatic告诉连接器所有的库(象libc等等)都使用静态的版本。1.5:请问各UNIX平台下和编译器名kaisakaisa:sunCC(c++)cc(c)alphacxx(c++)cc(c)HPaCC(c++)IBMxlC(c++)1.6:solaris下有没有C函数可以获得进程的相关信息比如:进程名、进程pid、进程所占CPU/Memory、开始时间、运行状态
7、等等。谢谢。liupch:2003-03-1910:03读取/proc/进程号/psinfo这个文件。就用我告诉你的那个函数ioctl(fd,PIOCPSINFO,&procinfo);在看一下procinfo这个结构就知道了。1.7:c++下使用的问题在c++下使用include后为什么编译器会报错呢1.检查你是不是使用g++编译器编译。gcc编c++程序会有问题2.检查在include头文件后有没有使用usingnamespacestd;新的标准C++加了几个关键字,其中最常用的就是namespace(名字空间)加入
8、这个关键字是为了避免在大程序中符号名重
此文档下载收益归作者所有