加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

头文件声明函数使用了vector类型,syntax error:identifier 'vector'

(2011-12-12 15:32:19)
标签:

杂谈

分类: 学术

头文件声明函数使用了vector类型,加了#include<vector>,编译报错syntax error:identifier 'vector'。

加     using namespace std;    即可。

【只包括头文件,命名空间没声明,不行。】

 

移植使用了小波变换的代码,原文件使用了预编译stdafx.h/cpp。我工程不需要,遂手工删除了代码中对其头文件的包含,但需要再添加一些头文件使代码中用到的宏已被声明。 原预编译文件中用到afxwin.h,加过来,编译通过,链接报错(类下):

error   LNK2005:   "void   *   __cdecl   operator   new(unsigned   int) "   (??2@YAPAXI@Z)   already   defined   in   LIBCD.lib(new.obj) 
error   LNK2005:   "void   __cdecl   operator   delete(void   *) "   (??3@YAXPAX@Z)   already   defined   in   LIBCD.lib(dbgdel.obj) 
error   LNK2001:   unresolved   external   symbol   __endthreadex 
error   LNK2001:   unresolved   external   symbol   __beginthreadex 
fatal   error   LNK1120:   2   unresolved   externals 

查了下,据说是MFC的lib库和C的lib库有冲突。要在工程设置中强制先忽略,再指定调用顺序。没特别搞明白。换办法。

看了一眼,也就几个:NULL,TRUE,FALSE,BOOL。自己定义一下好了。

cpp文件原带有 #define new DEBUG_NEW, 报了一堆错。因为不是MFC程序,也没有包含afxwin.h和afx.h这些,所以报错。在这里用不着这样调试,删掉就好了。

 

今天挪用代码报的一些问题,感到:头文件加的顺序也不是乱来的。。

VC6编译器这些方面是不太好,不要再次编译需写代码来防范、自带库的调用顺序要通过设置指定。。。

我始终对于Project Settings里面眼花缭乱却又总是关系到调通与否的各种设置,搞不十分清白。。唉。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有