之前鉴于codeblocks界面比较漂亮,一直采用的是codeblocks(编译器)+mingw(自选编译器,链接库)
的模式,今天多线程编程遇到一个问题:mingw还不支持pthread,因此会报错mutex doesn't name a type
关于多线程的库函数不被支持。
换成了dev_C++,果然这么丑还一直出现在机房的编译器靠的是内涵了。
安装步骤
准备工作下载boost库,下载地址https://sourceforge.net/projects/boost/
1. 设置GCC的环境变量PATH
设置环境变量path
,在其中加上DEV-C++编译器的路径(gcc.exe所在路径),如C:\Program Files (x86)\Dev-Cpp\MinGW64\bin
,路径之间用分号分隔。
2.编译bjam
编译bjam。打开一个命令窗口,进入路径D:\boost_1_66_0\boost_1_66_0\tools\build\src\engine
(目录结构不一定,只需是build.bat所在目录),运行命令Build.bat gcc
编译完成后,会在该目录下生成一个bin.ntx86_64目录,下包含b2.exe和bjam.exe。把bjam.exe拷贝到BOOST库的根目录,如D:\boost_1_66_0\boost_1_66_0
(tools上一级目录)
3.运行bjam
在boost
库的根目录下运行bjam --build-dir=build --toolset=gcc
, boost
库就开始编译了。整个过程会持续四五十分钟左右。生成的库回放在build目录下,如果你想放在不同的目录下,可以在命令行参数--build-dir
指定。
4.链接设置
在Dev-C++的tools->Complier Options->Directories->C++ Includes
文件中添加boost文件夹的上级目录,如D:\boost_1_66_0\boost_1_66_0
- 静态库链接设置:若只需要使用某头文件中的函数,可以如上只设置静态库链接即可。
- 动态链接库的使用若程序编译完成后需要使用动态链接库,则还需要设置链接参数。步骤如下:
首先你需要建立一个project,而不能只是编译单个的c++文件,因为在dev c++中,只有在project中才能设置linker的参数。 建立project后,“Project"-->"Project Options"-->"Parameters"选项卡`--->在linker框中
添加:-lboost_regex-mt
,告诉linker在链接的时候,链接regex库。操作如下图所示:
动态链接设置
有时会由于文件命名差异找不到链接目标,此刻也可以将D:\boost_1_66_0\boost_1_66_0\stage
中的lib库拷到dev C++安装目录:C:\Program Files (x86)\Dev-Cpp\MinGW64\lib
下,则会在编译后自动链接需要的库。
网友评论