The fastest way to start writing wxWidgets and C/C++ code is to get the CodeLite IDE. Its open source, free and supports multiple OSes. And add the Boost C++ library into the mix, you can build some really good cross-platform applications. While, wxWidgets comes pre-configured with CodeLite installer , for Boost, we need to manually link up stuff.
Here’s the clear and up-to-date information on how to setup boost with codelite, in Windows.
Before we begin:
- Download the “CodeLite 5.4 Installer for Windows (8, 7, Vista and XP) with MinGW TDM-GCC 4.8.1 included” package located here(http://downloads.codelite.org/).
- Download a suitable version of “7z for Windows” from here(http://www.7-zip.org/download.html) and Install it on your system. I recommend 7-Zip 9.20 version.
- Download boost sources, available as “boost_1_55_0.7z” from here.(http://sourceforge.net/projects/boost/files/boost/1.55.0/)
Now, follow the following steps:
- Extract the
codelite-5.4-mingw4.8.1.exe
file from thecodelite-5.4-mingw4.8.1.exe.7z
file, that you just downloaded and run the setup.NOTE: You must install codelite to a path that does NOT contain any spaces or parentheses, eg:C:\mycodelite
- Extract the
boost_1_55_0.7z
to a path that does NOT contain any spaces or parentheses, eg:C:\myboostdir
- Tell CodeLite where to find boost libs:
Go to Settings > Build Settings… > Compilers Tab
Select the “gnu g++” option and click on the plus sign to expand the option >
Select “Advanced”
Then,
In “Include Paths” textfield, add the path where the boost libs would be available, in this case:
C:\myboostdir
In “Libraries Paths” textfield, fill in the path above, i.e.C:\myboostdir
.
Click “Ok” and close the dialog box. - In CodeLite , Press Alt+W and then N, to Create a New workspace.
In the “New Workspace” dialog box, fill in the “Workspace name” and select a proper path for the project.
Again, preferably the project path should not contain any spaces and parentheses.
Press the “Create” button. - Then, in the new workspace, press Alt+W and then P,to Create a new project.
In the “New Project” dialog box, select the Template->Console->Simple executable(g++) and fill in a project name in the “Project name” field and click on “Ok”. - In the workspace view, select the main.cpp file and paste the below code.
#include <boost/lambda/lambda.hpp>
#include <iostream>
#include <iterator>
#include <algorithm>int main()
{using namespace boost::lambda;
typedef std::istream_iterator in;
std::for_each(
in(std::cin), in(), std::cout << (_1 * 3) << ” ” );
return 0;}
- Press F7 to build the project.
* If you see no build errors, you’re good to go, to the next step.
* If you see 1 or 2 warnings, especially pertaining to the boost headers, ignore them. (Reference: http://www.boost.org/doc/libs/1_55_0/more/getting_started/windows.html#errors-and-warnings) else you should look at the steps 1 to 5 above again. - To test your application, open a cmd window:
* Press Win + R . In the Run dialog box, type in “cmd”, without quotes and press enter.
* cd to the directory where the project was created in.
* cd to the Debug directory.
* Run the executable file in that directory as follows:
If you get the output as in image above, you have setup codelite correctly, so far. If you don’t check the code carefully or review the steps 1 to 7.
Now, if you want to use any of the separately-compiled Boost libraries, you’ll need to build and install it. To do this:
- Go to the directory tools\build\v2\
- Run bootstrap.bat
- Run b2 install –prefix=PREFIX where PREFIX is the directory where you want Boost.Build to be installed, eg: C:\myboostdir\builddir
- Add PREFIX\bin to your PATH environment variable.
- Then, cd to the Boost root directory(C:\myboostdir) and invoke b2 as follows:
b2 -j 4 toolset=gcc link=static --with-system --with-thread --with-date_time --with-regex --with-serialization stage debug
NOTE:The above b2 command will setup basic libraries to use with boost.asio.
If you intend to build the complete set of libraries, you should run(This may take about 2-3 hours or more, depending on computer hardware specs):
b2 -j 4 toolset=gcc --build-type=complete stage
To see an exhaustive list of options, refer: Boost.build documentation at http://www.boost.org/boost-build2/doc/html/bbv2/overview/invocation.html - Go to the workspace view and there select your “Project” and right-click on it. Go to the “Settings” menu item. In Settings dialog box, edit the “Library Paths:” and the “Libraries:” as shown in the screenshot below.
Press “OK” and close the dialog box. - Replace the code in the main.cpp with the one below:
#include <boost/regex.hpp>
#include <iostream>
#include <string>int main()
{std::string line;
boost::regex pat( “^Subject: (Re: |Aw: )*(.*)” );
while (std::cin)
{std::getline(std::cin, line);
boost::smatch matches;
if (boost::regex_match(line, matches, pat))
std::cout << matches[2] << std::endl;}
return 0;
}
- Press F7 to build the project.
- In the open cmd window, cd to the directory where the project was created in.
* cd to the Debug directory.
* run the executable file in that directory as shown in the screenshot below:
If you see the output as shown above, you have a working boost + codelite system. Congratulations!
Please do drop in a comment and let me know how it goes.
Reference: http://www.boost.org/doc/libs/1_55_0/more/getting_started/windows.html