Chinaunix首页 | 论坛 | 博客
  • 博客访问: 766815
  • 博文数量: 171
  • 博客积分: 3629
  • 博客等级: 中校
  • 技术积分: 1779
  • 用 户 组: 普通用户
  • 注册时间: 2005-02-23 21:21
文章分类

全部博文(171)

文章存档

2019年(4)

2018年(7)

2017年(1)

2016年(4)

2014年(1)

2013年(8)

2012年(10)

2011年(50)

2009年(12)

2008年(10)

2006年(56)

2005年(8)

分类: C/C++

2006-04-22 04:00:10

我汗,人家2003年的东东又被偶翻出来了,想来作者也没想到余热到今天.
 
作者: ZZ
 
如果你用STLPORT和最新的M$ 2003 SDK可能会出现些错误,都是和
InterlockedXXX
有关的.
 
解决方法就在下面:
 
 如果你安装了 Microsoft Platform SDK,还要作如下的修改,否则编译 STLport 时会出现:

 error C2733: second C linkage of overloaded function 'InterlockedIncrement' not allowed.

等错误,这是因为 Microsoft Platform SDK 中的 WinBase.h 定义的线程安全函数InterlockedIncrement、InterlockedDecrement、InterlockedExchange 和 STLport 中 _threads.h 内定义的函数起冲突引发的错误。

    解决办法是修改 STLport 的宏开关,打开\STLport-4.5.3\stlport 目录下的 stl_user_config.h 文件,找到以下两行宏定义:

//# define _STLP_USE_MFC 1

//# define _STLP_NEW_PLATFORM_SDK 1

    将注释符号“//”删除,而且还要保证 Microsoft Platform SDK 的搜索路径必须在 STLport 和 MSVC 自己的搜索路径之前,这样就可以进行正常编译了。据说在VC7.0上没有这个问题!不过我没试过。

上面是作者的说法,下面偶说下不同的地方.

只是改了# define _STLP_NEW_PLATFORM_SDK 1.偶的STLPORT路径还在Microsoft Platform SDK 前面,好象也没事哦.先用着再说.有问题再改吧.

嘿嘿,偶以前用NOWINBASEINTERLOCK选项避开它们,不过有时候如用WTL避不开哦,只要使用STL就会出现这烦人的事.现在好了,世界清静了.

偶记在这儿有另外一层意思,这个stl_user_config.h文件还有些选项,以后顺利好说,再出些奇怪问题,来看看它也不错.

 
 
阅读(2475) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~