原以为gcc是最标准的C++编译器(我知道他是合集,省事而已,一定有人要骂我了),应该不费什么事,可是竟然折腾了我好几天,还以为dev有问题,把mingw studio也装了试。
编译库应该不成问题,把include和lib路径设置好,make 那个gcc-mingw32.mak就可以了,但事实不是这样的,当然是错误,makefile得改 ,说实在的我也不大看得懂makfile ,不过有些地方略能理解,separator设置得改成 “\”,默认unix的“/”只会make错误信息,mkdir的参数也不正确,我改了但似乎还是出错,索性自己把这些应当建立的目录make了(原谅我不求甚解),然后ok了。库文件和头文件都拷进dev的目录里去,把dll(要把末尾的版本号去掉,不然只有你自己才可能知道那是dll)拷进system32里,设了路径,写个测试,编译(当然通不过,不然我还费什么劲)一堆undefine reference 的错误,问遍了,也是解决不了。其实,和vc不同,光指定库文件的目录没有用,必须在工程文件里显示的调用相应的库才可,问题的解决就这么简单。
boost没那么繁复,但是要装msys(血精灵的blog里有,可以搜得到)才行,先运行msys, 然后敲命令cmd进入windows控制台模式,到%boostdir%\tools\build\jam_src下,运行build mingw,然后把bjam拷到%boostdir%下,然后bjam就可以了,这是我的命令行,可作为参考 bjam -sTOOLS=”mingw-stlport” -sSTLPORT_PATH=”d:\software\stlport” -sSTLPORT_VERSION=”5.0” -sBUILD=”release <runtime-link>static/dynamic <threading>multi --includedir=“%includedir%” --libdir=“%libdir%” install”,需要提及的是,最好你的include目录不要有诸如programme files这样的情况,bjam会晕的,不过boost自己在这样的目录倒是可以的,我的boost就是在microsoft visual studio .net 目录下。完了,当然是把.hpp, .a,.dll分门别类拷到相应的目录,设好路径。然后……,然后还是要记得在工程属性里显式引用所需的库文件,不然一样失败。