linux下用xlC编译C++报错
a.cpp
#include <string>
#include <iostream>
#include <map>
#include <string>
#include "test.h"
using namespace std;
#define GETS(msg) printf("%s\n",msg);
struct Student{
char name[30];
int age;
char sex[4];
}stu1,stu2={"zhangsan",22,"boy"};
FILE *p_fp;
char c_str[1000];
char c_Str[10];
map<string, int> my_Map;
char *ps[3];
char *pd[3]={"username","userpass","database"};
int k=0;
int main(int argc,char *argv[])
{
cout<<"sdfds";
//my_Map.insert(make_pair<string,int>("d",4));
//cout<<"哈哈"<<endl;
sun(1,4);
GETS("你好");
if ((p_fp=fopen(argv[1],"r"))==NULL)
printf("打开配置文件%s失败!\n",argv[1]);
else{
while (!feof(p_fp))
{
if (fgets(c_str, 25, p_fp) != NULL){
char *p;
p=strstr(c_str,"=");
printf("c_str%s\n",p);
ps[k]=p;
k=k+1;
}
}
}
for(int i=0;i<3;i++){
printf("%s=%s\n",pd[i],ps[i]);
}
printf("My name is : %s\n","山炮");
printf("dd=%d\n",d);
CServices cs1;
cs1.add();
return 0;
}
void CServices::add(){
printf("dddddddddddd:%s\n","aaaaaaaaaaaaaaaa");
printf("结构体:%d\n",stu2.age);
}
test.h
#ifndef test_h
#define test_h
//#include <math>
#include <string>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#define BBB 80
#define DDD 60
#ifdef AAA
using namespace std;
int i=3;
#else
int i;
#endif
int d=14;
#define demo(H) if(2>3)\
{\
d=15;\
printf("error : %s\n");\
}\
else\
d=18;
int c=0;
void sun(int a,int b)
{
printf("a+b=%d\n",a+b);
demo("error");
}
#endif
class CServices
{
public:
CServices(){printf("构造函数\n");};
void add();
};
makefile
#################################C++程序#########################
CPP = xlC_r7 -q64 -bh:5 -g
CFLAGS = -c -o
LFLAGS = $(PLATFORM_DEF) -D_REENTRANT -D_THREAD_SAFE -g -w -o
LIB = -L$(PATH_LIB)
PATH_TEST =/ngbss/mddms/interface/other/SRBI/test
OBJ_TEST =\
$(PATH_TEST)/a.o\
exec_test:
@$(CPP) $(OBJ_TEST)
$(PATH_TEST)/a.o:
@$(CPP) $(CFLAGS) $@ $(PATH_TEST)/a.cpp
test:$(OBJ_TEST) exec_test
@cc a.o -o a
@a
make test
[/ngbss/mddms/interface/other/SRBI/test]$make test
ld: 0711-317 ERROR: Undefined symbol: .clear__Q2_3std8ios_baseFib
ld: 0711-317 ERROR: Undefined symbol: __dl__FPv
ld: 0711-317 ERROR: Undefined symbol: .uncaught_exception__3stdFv
ld: 0711-317 ERROR: Undefined symbol: .__dt__Q2_3std7_LockitFv
ld: 0711-317 ERROR: Undefined symbol: .__dl__FPv
ld: 0711-317 ERROR: Undefined symbol: .__ct__Q2_3std7_LockitFi
ld: 0711-317 ERROR: Undefined symbol: .__ReThrowV6
ld: 0711-317 ERROR: Undefined symbol: .__setUncaughtExceptionFlag__3stdFb
ld: 0711-317 ERROR: Undefined symbol: .__CleanupCatchV6a
ld: 0711-317 ERROR: Undefined symbol: cout__3std
ld: 0711-317 ERROR: Undefined symbol: .unexpected__3stdFv
ld: 0711-317 ERROR: Undefined symbol: .terminate__3stdFv
ld: 0711-317 ERROR: Undefined symbol: .__ThrowV6
ld: 0711-317 ERROR: Undefined symbol: ._Toupper
ld: 0711-317 ERROR: Undefined symbol: ._Tolower
ld: 0711-317 ERROR: Undefined symbol: ._Getctype__FPCc
ld: 0711-317 ERROR: Undefined symbol: _Cltab__Q2_3std5ctypeXTc_
ld: 0711-317 ERROR: Undefined symbol: .__dt__Q2_3std8_LocinfoFv
ld: 0711-317 ERROR: Undefined symbol: .__ct__Q2_3std8_LocinfoFPCci
ld: 0711-317 ERROR: Undefined symbol: .__nw__FUl
ld: 0711-317 ERROR: Undefined symbol: _Id_cnt__Q3_3std6locale2id
ld: 0711-317 ERROR: Undefined symbol: id__Q2_3std5ctypeXTc_
ld: 0711-317 ERROR: Undefined symbol: ._Getfacet__Q2_3std6localeCFUl
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
make: The error code from the last command is 8.
用到string CString map cout cin等等是总是报这样的错误,请教各位是为什么