好吧,VC8.0开始就已经支持openMP了,但是VS太臃肿了,不是做较大的工程或者非用不可(比如Win8/8.1的开发)个人一般不喜欢用。GCC也支持openMP标准,code::block是一款轻量级的IDE,可以集成GCC,并且可以跨平台(Windows下安装Mingw版本即可),正合我意。实际code block实在是强大,原生就支持很多类型的项目构建,甚至是Irrlicht!
首先我们开始配置一下,使得code block可以顺利build并行程序:
如图所示,在setting菜单调出Compiler setting
1.配置编译器,在Selected Compiler选项中选GNU GCC
2.填写编译参数,Compiler Setting里的Other Options中粘贴-fopenmp;
3.填写连接参数,Link Setting里的Other Options中粘贴-lgomp -lpthread;
OK,就这么简单。开始大展拳脚咯。
但是并不是所有童鞋都可以这么顺利,极有可能会报错:
ld.exe cannot find -lgomp
ld.ese cannot find -lpthread
出现这种错误是因为MinGW找不到或者缺失相关的库文件,我从官网下载的code block虽然集成了MingGW,但是默认的MinGW只是安装了一个子集,因此我们可以到MinGW的官网下载相关的库文件进行补全。当然如果不想计较盘根错节的文件,可以在官网上下载一个完整的安装程序,然后获取需要的lib到一个目录,再到code block的setting->compiler settings->Toolchain executables,将compiler installation directory更改为新的MinGW目录即可。