Chinaunix

标题: AIX c++ 编译通过,STL函数运行不正常,有什么神奇参数吗 [打印本页]

作者: wenlq    时间: 2015-11-07 16:40
标题: AIX c++ 编译通过,STL函数运行不正常,有什么神奇参数吗
AIX Version 5.3

xlC 版本
xlC -qversion=verbose
IBM XL C/C++ Enterprise Edition for AIX, V9.0
Version: 09.00.0000.0000
Driver Version: 09.00(C/C++) Level: 070425a
C Front End Version: 09.00(C/C++) Level: 070425
C++ Front End Version: 09.00(C/C++) Level: 070425
High-Level Optimizer Version: 09.00(C/C++) and 11.01(Fortran) Level: 070428
Low-Level Optimizer Version: 09.00(C/C++) and 11.01(Fortran) Level: 070427

现象: 弄一单独的.cpp ,里面弄一vector <string>  vs 用 vs.push_back( "abcd") 编译执行都是正常的结果。
在另一地方带informix 数据库也是xlC 编译,也是vector <string> 的push_back 3次 ,看vs.size()有值=3 ,打印vs[0] vs[1] vs[2]却是空的。
一个map<string,string> mymap; 也是能编译,却不能用 mymap["abc"]="123"; 得到正确结果。
用mymap.insert( make_pair("abc","123)) 却能得到正确结果。
string 变量的 str=str1+str2; 也不能得到正确结果。

编译都能成功。运行不正常,这是编译器的错误呢还是另外有什么神奇参数可以控制?
请有经验的TX不吝指教,谢谢。

  xlC  -qcpluscmt -qrtti=all -q64 l  -DIBM_AIX64 -DINFORMIX DDEBUG -c -w  -I. -I./include  -I/informix/incl/esql   -I/home/tuxedo/include  myprog.C
xlC -qchars=signed -q64  -qlanglvl=ansi -qalign=natural -qcheck=nullptr -qmaxmem=-1 -qspill=2000 -D_H_LOCALEDEF -g -I/informix/incl/esql  -brtl  -o myso.so myprog.o -q64 -L/usr/vacpp/ib -lC -qrtti=all -blibpath:/usr/vacpp/lib:/usr/lib:/lib -L/home/tuxedo/lib -L/informix/lib -L/informix/lib/esql -L/usr/lib -L/usr/lib/CC -L/informix/lib/c++ -lxti -lm -lc /home/tuxedo/lib/tpinit.o -lifsql -lifasf -lifgen -lifos -lifgls -lifglx /informix/lib/esql/checkapi.o -lifdmi -lifc++ -lxml -ltux -lengine -lwsc -lfml -lfml32 -lbuft -lnsl -liconv -qmkshrobj  -L/informix/lib -L/informix/lib/esql -lifsql -lifasf -lifgen -lifos -lifgls -ltli -lc_r -lmsaa -lbsd -ldl -lm_r   /informix/lib/esql/checkapi.o -lifglx





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2