mingw下组建stlport+boost

BOOST版本: 1.47.0
STLPORT版本: 5.2.1
mingw版本: 4.5.2

先编译STLPORT:
1. 按照FAQ中关于mingw说明 MSYS进入到stlport根目录
2. mingw32-make -fgcc.mak clean all
2.1 如果出现关于InterlockedDecrement类似的函数声明冲突,则编辑stlport/stl/config/user_config.h 打开

_STLP_NEW_PLATFORM_SDK 宏定义,使用新版本的这些函数
2.2 在链接过程中出现没有定义的符号函数等,编辑 /build/Makefiles/gmake/app和..../lib下的gcc.mak文件,在mingw相关的链

接参数行 $(_LGCC_S) 后增加 -lgcc 参数
2.3 以后要使用stlport,需注意必须修改链接参数  
2.3.1 禁止默认lib链接 -nodefaultlibs
2.3.2 手动增加默认链接库, 如果有缺漏还需要看连接器的默认库有多少一个个加进去. 例子:-lsupc++ -lgcc_s -lgcc -

lmingw32 -lmingwex -lmoldname -lmsvcrt -lcoldname -lkernel32

编译BOOST:
1. 修改user-config.jam,并将修改好的版本放到boost根目录下
1.1  using gcc : 4.5.2 : g++-4.5.2 ; 定义mingw的版本,如果提示版本或者文件名没有,那就复制mingw下的相同功能文件成缺

少的名称
1.2 using stlport : 5.2.1 : K:/download/eclipse/STLport-5.2.1/stlport : K:/stlport/lib ; 设置stlport位置

2. 使用bjam构建
K:\download\eclipse\boost_1_47_0>bjam stdlib=stlport --build-type=complete stage -q
stdlib=stlport指定使用stlport作为stl替换
2.1 如果编译过程中出现SwitchToTread未声明的错误,修改stlport/stl/_threads.c 在SwitchToThread出现之前声明

SwitchToThread函数(类似这样的定义)
#  if defined (_STLP_WIN32THREADS)
extern "C" long __stdcall SwitchToThread(void);
#  endif
剩下的就是加lib目录,include目录。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值