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目录。。。
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目录。。。