<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.codeblocks.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Elzorro</id>
	<title>Code::Blocks - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.codeblocks.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Elzorro"/>
	<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php/Special:Contributions/Elzorro"/>
	<updated>2026-04-14T06:23:24Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.0</generator>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Code_Statistics_plugin&amp;diff=5570</id>
		<title>Code Statistics plugin</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Code_Statistics_plugin&amp;diff=5570"/>
		<updated>2008-08-07T00:59:39Z</updated>

		<summary type="html">&lt;p&gt;Elzorro: New page: Category: Code::Blocks Contrib Plugins __NOTOC__ {{Infobox_Plugin|   name = Code Statistics |   logo = Image:Generic-plugin.png |   developer = Zlika |   maintainer ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Code::Blocks Contrib Plugins]]&lt;br /&gt;
__NOTOC__&lt;br /&gt;
{{Infobox_Plugin|&lt;br /&gt;
  name = Code Statistics |&lt;br /&gt;
  logo = [[Image:Generic-plugin.png]] |&lt;br /&gt;
  developer = [[User:Zlika|Zlika]] |&lt;br /&gt;
  maintainer = Zlika |&lt;br /&gt;
  version = &lt;br /&gt;
}}&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Analizes the source code files of the current project and generates statistics.&lt;br /&gt;
&lt;br /&gt;
The statistics generated are:&lt;br /&gt;
* Number of files&lt;br /&gt;
* Number of lines&lt;br /&gt;
* Number and percentage of blank lines&lt;br /&gt;
* Number and percentage of comment lines&lt;br /&gt;
* Number and percentage of code lines&lt;br /&gt;
* Number and percentage of lines that have mixed code and comments&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Source code analisis for multiple languages&lt;br /&gt;
* Configuration dialog&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
[[Image:CodeStatistics.jpg|thumb|right|Image 1. Statistics Window]]&lt;br /&gt;
=== Analizing a Project ===&lt;br /&gt;
Activate the project you want to analize and then got to the menu Plugins\Code Statistics.&lt;br /&gt;
&lt;br /&gt;
Image 1 shows a screenshot of the window that appears. In that image you can see that the analized project is small and poorly documented, because only 5 percent of the lines have comments.&lt;br /&gt;
&lt;br /&gt;
=== Plugin Configuration ===&lt;br /&gt;
To add/remove/edit languages analized by the plugin go to the menu Settings\Editor. There select the section ''Code statistics settings'' and change the parameters according to your needs.&lt;/div&gt;</summary>
		<author><name>Elzorro</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=File:CodeStatistics.jpg&amp;diff=5569</id>
		<title>File:CodeStatistics.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=File:CodeStatistics.jpg&amp;diff=5569"/>
		<updated>2008-08-07T00:45:06Z</updated>

		<summary type="html">&lt;p&gt;Elzorro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Elzorro</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Using_STLFilt_with_MinGW&amp;diff=5568</id>
		<title>Using STLFilt with MinGW</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Using_STLFilt_with_MinGW&amp;diff=5568"/>
		<updated>2008-08-07T00:10:25Z</updated>

		<summary type="html">&lt;p&gt;Elzorro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:User Documentation]]&lt;br /&gt;
&lt;br /&gt;
== What is STLFilt ==&lt;br /&gt;
STLFilt is an STL error message decryptor for C++.&lt;br /&gt;
A more detailed description (taken from STLFilt [http://www.bdsoft.com/tools/stlfilt.html webpage]):&lt;br /&gt;
&lt;br /&gt;
''STLFilt simplifies and/or reformats long-winded C++ error and warning messages, with a focus on STL-related diagnostics. The result renders many of even the most cryptic diagnostics comprehensible.''&lt;br /&gt;
&lt;br /&gt;
STLFilt supports the following compilers:&lt;br /&gt;
&lt;br /&gt;
* Comeau C++ (comofilt)&lt;br /&gt;
* GCC 2.95.x/3.x/4.x  (gstlfilt)&lt;br /&gt;
* MSVC++ 6/7/8/9 (incl. Dinkum Libraries) (stlfilt)&lt;br /&gt;
* Metrowerks CodeWarrior Pro 7/8 (cwfilt)&lt;br /&gt;
* Borland C++ / C++Builder (bccfilt)&lt;br /&gt;
* Intel C++ 7/8 (intelfilt)&lt;br /&gt;
* EDG Front End (Generic) (edgfilt)&lt;br /&gt;
* Digital Mars C++ (dmcfilt)&lt;br /&gt;
&lt;br /&gt;
This article will be focusing on ''gSTLFilt'' used with [https://www.codeblocks.org/downloads/binaries#windows Code::Blocks MinGW] bundled package for Microsoft Windows platform.&lt;br /&gt;
&lt;br /&gt;
== Installing STLFilt ==&lt;br /&gt;
&lt;br /&gt;
Because the core of STLFilt is a &amp;lt;tt&amp;gt;perl&amp;lt;/tt&amp;gt; script you will need to have a &amp;lt;tt&amp;gt;perl&amp;lt;/tt&amp;gt; distribution installed, such as [http://www.activestate.com/Products/activeperl/ ActivePerl]&lt;br /&gt;
&lt;br /&gt;
STLFilt is distributed as an zip archive, which can be downloaded from [http://www.bdsoft.com/dist/gstlfilt.zip here].&lt;br /&gt;
&lt;br /&gt;
From the STLFilt archive you will be needing the following files: &amp;lt;tt&amp;gt;c++.exe, Proxy-gcc.INI, and gSTLFilt.pl&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The installation steps are:&lt;br /&gt;
&lt;br /&gt;
* Rename &amp;lt;tt&amp;gt;&amp;quot;c:\Program Files\CodeBlocks\MinGW\bin\mingw32-g++.exe&amp;quot;&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;mingw32-g++2.exe&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Copy &amp;lt;tt&amp;gt;gstlfilt.zip\c++.exe&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;c:\Program Files\CodeBlocks\MinGW\bin\&amp;lt;/tt&amp;gt; and rename it as &amp;lt;tt&amp;gt;mingw32-g++.exe&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Copy &amp;lt;tt&amp;gt;gstlfilt.zip\gSTLFilt.pl&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;c:\Program Files\CodeBlocks\MinGW\bin\&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Copy &amp;lt;tt&amp;gt;gstlfilt.zip\Proxy-gcc.INI&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;%windir%&amp;lt;/tt&amp;gt; (for example: &amp;lt;tt&amp;gt;c:\windows&amp;lt;/tt&amp;gt;)&lt;br /&gt;
* Create an empty file named &amp;lt;tt&amp;gt;filtering.on&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;c:\Program Files\CodeBlocks\MinGW\bin\&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Edit &amp;lt;tt&amp;gt;%windir%\Proxy-gcc.INI&amp;lt;/tt&amp;gt; under &amp;lt;tt&amp;gt;[common]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 filter_script=c:\Program Files\CodeBlocks\MinGW\bin\gSTLFilt.pl&lt;br /&gt;
 toggle_file_dir=c:\Program Files\CodeBlocks\MinGW\bin\                    &lt;br /&gt;
 native_gcc=mingw32-g++2.exe                     &lt;br /&gt;
 perl_exe=c:\perl\bin\perl.exe&lt;br /&gt;
&lt;br /&gt;
== Testing STLFilt ==&lt;br /&gt;
&lt;br /&gt;
Here is a test program:&lt;br /&gt;
 #include &amp;lt;iostream&amp;gt;&lt;br /&gt;
 #include &amp;lt;map&amp;gt;&lt;br /&gt;
 #include &amp;lt;string&amp;gt;&lt;br /&gt;
 #include &amp;lt;iterator&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 using namespace std;&lt;br /&gt;
 &lt;br /&gt;
 int main()&lt;br /&gt;
 {&lt;br /&gt;
     map&amp;lt;int, string&amp;gt; months;&lt;br /&gt;
 &lt;br /&gt;
     months.insert(1, &amp;quot;January&amp;quot;);&lt;br /&gt;
     months.insert(2, &amp;quot;February&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
     copy(months.begin(), months.end(), ostream_iterator&amp;lt;pair&amp;lt;int, string&amp;gt; &amp;gt;(cout, &amp;quot;; &amp;quot;));&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The error message without STLFilt is:&lt;br /&gt;
&lt;br /&gt;
 Compiling: main.cpp&lt;br /&gt;
 D:\projects\edu\c++\testcb\main.cpp: In function `int main()':&lt;br /&gt;
 D:\projects\edu\c++\testcb\main.cpp:12: error: no matching function for call to `std::map&amp;lt;int, std::string, std::less&amp;lt;int&amp;gt;, std::allocator&amp;lt;std::pair&amp;lt;const int, std::string&amp;gt; &amp;gt; &amp;gt;::insert(int, const char[8])'&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:360: note: candidates are: std::pair&amp;lt;typename std::_Rb_tree&amp;lt;_Key, std::pair&amp;lt;const _Key, _Tp&amp;gt;, std::_Select1st&amp;lt;std::pair&amp;lt;const _Key, _Tp&amp;gt; &amp;gt;, _Compare, _Alloc&amp;gt;::iterator, bool&amp;gt; std::map&amp;lt;_Key, _Tp, _Compare, _Alloc&amp;gt;::insert(const std::pair&amp;lt;const _Key, _Tp&amp;gt;&amp;amp;) [with _Key = int, _Tp = std::string, _Compare = std::less&amp;lt;int&amp;gt;, _Alloc = std::allocator&amp;lt;std::pair&amp;lt;const int, std::string&amp;gt; &amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:384: note:                 typename std::_Rb_tree&amp;lt;_Key, std::pair&amp;lt;const _Key, _Tp&amp;gt;, std::_Select1st&amp;lt;std::pair&amp;lt;const _Key, _Tp&amp;gt; &amp;gt;, _Compare, _Alloc&amp;gt;::iterator std::map&amp;lt;_Key, _Tp, _Compare, _Alloc&amp;gt;::insert(typename std::_Rb_tree&amp;lt;_Key, std::pair&amp;lt;const _Key, _Tp&amp;gt;, std::_Select1st&amp;lt;std::pair&amp;lt;const _Key, _Tp&amp;gt; &amp;gt;, _Compare, _Alloc&amp;gt;::iterator, const std::pair&amp;lt;const _Key, _Tp&amp;gt;&amp;amp;) [with _Key = int, _Tp = std::string, _Compare = std::less&amp;lt;int&amp;gt;, _Alloc = std::allocator&amp;lt;std::pair&amp;lt;const int, std::string&amp;gt; &amp;gt;]&lt;br /&gt;
 D:\projects\edu\c++\testcb\main.cpp:13: error: no matching function for call to `std::map&amp;lt;int, std::string, std::less&amp;lt;int&amp;gt;, std::allocator&amp;lt;std::pair&amp;lt;const int, std::string&amp;gt; &amp;gt; &amp;gt;::insert(int, const char[9])'&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:360: note: candidates are: std::pair&amp;lt;typename std::_Rb_tree&amp;lt;_Key, std::pair&amp;lt;const _Key, _Tp&amp;gt;, std::_Select1st&amp;lt;std::pair&amp;lt;const _Key, _Tp&amp;gt; &amp;gt;, _Compare, _Alloc&amp;gt;::iterator, bool&amp;gt; std::map&amp;lt;_Key, _Tp, _Compare, _Alloc&amp;gt;::insert(const std::pair&amp;lt;const _Key, _Tp&amp;gt;&amp;amp;) [with _Key = int, _Tp = std::string, _Compare = std::less&amp;lt;int&amp;gt;, _Alloc = std::allocator&amp;lt;std::pair&amp;lt;const int, std::string&amp;gt; &amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:384: note:                 typename std::_Rb_tree&amp;lt;_Key, std::pair&amp;lt;const _Key, _Tp&amp;gt;, std::_Select1st&amp;lt;std::pair&amp;lt;const _Key, _Tp&amp;gt; &amp;gt;, _Compare, _Alloc&amp;gt;::iterator std::map&amp;lt;_Key, _Tp, _Compare, _Alloc&amp;gt;::insert(typename std::_Rb_tree&amp;lt;_Key, std::pair&amp;lt;const _Key, _Tp&amp;gt;, std::_Select1st&amp;lt;std::pair&amp;lt;const _Key, _Tp&amp;gt; &amp;gt;, _Compare, _Alloc&amp;gt;::iterator, const std::pair&amp;lt;const _Key, _Tp&amp;gt;&amp;amp;) [with _Key = int, _Tp = std::string, _Compare = std::less&amp;lt;int&amp;gt;, _Alloc = std::allocator&amp;lt;std::pair&amp;lt;const int, std::string&amp;gt; &amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/stream_iterator.h: In member function `std::ostream_iterator&amp;lt;_Tp, _CharT, _Traits&amp;gt;&amp;amp; std::ostream_iterator&amp;lt;_Tp, _CharT, _Traits&amp;gt;::operator=(const _Tp&amp;amp;) [with _Tp = std::pair&amp;lt;int, std::string&amp;gt;, _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]':&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/stl_algobase.h:234:   instantiated from `_OutputIterator std::__copy(_InputIterator, _InputIterator, _OutputIterator, std::input_iterator_tag) [with _InputIterator = std::_Rb_tree_iterator&amp;lt;std::pair&amp;lt;const int, std::string&amp;gt; &amp;gt;, _OutputIterator = std::ostream_iterator&amp;lt;std::pair&amp;lt;int, std::string&amp;gt;, char, std::char_traits&amp;lt;char&amp;gt; &amp;gt;]'&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/stl_algobase.h:266:   instantiated from `_OutputIterator std::__copy_aux2(_InputIterator, _InputIterator, _OutputIterator, __false_type) [with _InputIterator = std::_Rb_tree_iterator&amp;lt;std::pair&amp;lt;const int, std::string&amp;gt; &amp;gt;, _OutputIterator = std::ostream_iterator&amp;lt;std::pair&amp;lt;int, std::string&amp;gt;, char, std::char_traits&amp;lt;char&amp;gt; &amp;gt;]'&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/stl_algobase.h:308:   instantiated from `_OutputIterator std::__copy_ni2(_InputIterator, _InputIterator, _OutputIterator, __false_type) [with _InputIterator = std::_Rb_tree_iterator&amp;lt;std::pair&amp;lt;const int, std::string&amp;gt; &amp;gt;, _OutputIterator = std::ostream_iterator&amp;lt;std::pair&amp;lt;int, std::string&amp;gt;, char, std::char_traits&amp;lt;char&amp;gt; &amp;gt;]'&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/stl_algobase.h:327:   instantiated from `_OutputIterator std::__copy_ni1(_InputIterator, _InputIterator, _OutputIterator, __false_type) [with _InputIterator = std::_Rb_tree_iterator&amp;lt;std::pair&amp;lt;const int, std::string&amp;gt; &amp;gt;, _OutputIterator = std::ostream_iterator&amp;lt;std::pair&amp;lt;int, std::string&amp;gt;, char, std::char_traits&amp;lt;char&amp;gt; &amp;gt;]'&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/stl_algobase.h:358:   instantiated from `_OutputIterator std::copy(_InputIterator, _InputIterator, _OutputIterator) [with _InputIterator = std::_Rb_tree_iterator&amp;lt;std::pair&amp;lt;const int, std::string&amp;gt; &amp;gt;, _OutputIterator = std::ostream_iterator&amp;lt;std::pair&amp;lt;int, std::string&amp;gt;, char, std::char_traits&amp;lt;char&amp;gt; &amp;gt;]'&lt;br /&gt;
 D:\projects\edu\c++\testcb\main.cpp:15:   instantiated from here&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/stream_iterator.h:196: error: no match for 'operator&amp;lt;&amp;lt;' in '*((std::ostream_iterator&amp;lt;std::pair&amp;lt;int, std::string&amp;gt;, char, std::char_traits&amp;lt;char&amp;gt; &amp;gt;*)this)-&amp;gt;std::ostream_iterator&amp;lt;std::pair&amp;lt;int, std::string&amp;gt;, char, std::char_traits&amp;lt;char&amp;gt; &amp;gt;::_M_stream &amp;lt;&amp;lt; __value'&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/ostream.tcc:63: note: candidates are: std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp;(*)(std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp;)) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/ostream.tcc:74: note:                 std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(std::basic_ios&amp;lt;_CharT, _Traits&amp;gt;&amp;amp;(*)(std::basic_ios&amp;lt;_CharT, _Traits&amp;gt;&amp;amp;)) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/ostream.tcc:86: note:                 std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(std::ios_base&amp;amp;(*)(std::ios_base&amp;amp;)) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/ostream.tcc:121: note:                 std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(long int) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/ostream.tcc:155: note:                 std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(long unsigned int) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/ostream.tcc:98: note:                 std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(bool) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/ostream:178: note:                 std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(short int) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/ostream:189: note:                 std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(short unsigned int) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/ostream:193: note:                 std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(int) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/ostream:204: note:                 std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(unsigned int) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/ostream.tcc:179: note:                 std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(long long int) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/ostream.tcc:214: note:                 std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(long long unsigned int) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/ostream.tcc:238: note:                 std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(double) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/ostream:219: note:                 std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(float) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/ostream.tcc:261: note:                 std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(long double) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/ostream.tcc:284: note:                 std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(const void*) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/ostream.tcc:307: note:                 std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(std::basic_streambuf&amp;lt;_CharT, _Traits&amp;gt;*) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 Process terminated with status 1 (0 minutes, 1 seconds)&lt;br /&gt;
 3 errors, 0 warnings&lt;br /&gt;
&lt;br /&gt;
And now the error message '''with STLFilt enabled''': &lt;br /&gt;
&lt;br /&gt;
 Compiling: main.cpp&lt;br /&gt;
 D:\projects\edu\c++\testcb\main.cpp: In function `int main()':&lt;br /&gt;
 D:\projects\edu\c++\testcb\main.cpp:12: error: No match for &lt;br /&gt;
    `map&amp;lt;int, string&amp;gt;::insert(int, const char[8])'&lt;br /&gt;
 D:\projects\edu\c++\testcb\main.cpp:13: error: No match for &lt;br /&gt;
    `map&amp;lt;int, string&amp;gt;::insert(int, const char[9])'&lt;br /&gt;
 stream_iterator.h: In member function &lt;br /&gt;
    `ostream_iterator&amp;lt;pair&amp;lt;int, string&amp;gt;, char, char_traits&amp;lt;char&amp;gt; &amp;gt; &amp;amp;&lt;br /&gt;
     ostream_iterator&amp;lt;pair&amp;lt;int, string&amp;gt;, char, char_traits&amp;lt;char&amp;gt; &amp;gt;::operator=(&lt;br /&gt;
 	const pair&amp;lt;int, string&amp;gt; &amp;amp;&lt;br /&gt;
     )':&lt;br /&gt;
 stl_algobase.h:234:   instantiated from &lt;br /&gt;
    `ostream_iterator&amp;lt;&lt;br /&gt;
 	pair&amp;lt;int, string&amp;gt;, char, char_traits&amp;lt;char&amp;gt; &lt;br /&gt;
     &amp;gt; __copy(&lt;br /&gt;
 	iter, iter&lt;br /&gt;
       , ostream_iterator&amp;lt;pair&amp;lt;int, string&amp;gt;, char, char_traits&amp;lt;char&amp;gt; &amp;gt;&lt;br /&gt;
       , input_iterator_tag&lt;br /&gt;
     )'&lt;br /&gt;
     [STL Decryptor: Suppressed 4 more STL standard header messages]&lt;br /&gt;
 D:\projects\edu\c++\testcb\main.cpp:15:   instantiated from here&lt;br /&gt;
 stream_iterator.h:196: error: no match for 'operator&amp;lt;&amp;lt;' in '*(&lt;br /&gt;
 	(ostream_iterator&amp;lt;pair&amp;lt;int, string&amp;gt;, char, char_traits&amp;lt;char&amp;gt; &amp;gt; *)this&lt;br /&gt;
     )-&amp;gt;ostream_iterator&amp;lt;pair&amp;lt;int, string&amp;gt;, char, char_traits&amp;lt;char&amp;gt; &amp;gt;&lt;br /&gt;
     ::_M_stream &amp;lt;&amp;lt; __value'&lt;br /&gt;
 STL Decryptor reminders:&lt;br /&gt;
     Use the /hdr:L option to see all suppressed standard lib headers&lt;br /&gt;
     Use the /cand:L option to see all suppressed template candidates&lt;br /&gt;
 Process terminated with status 1 (0 minutes, 2 seconds)&lt;br /&gt;
 3 errors, 0 warnings&lt;br /&gt;
&lt;br /&gt;
== Removing Perl as a dependency ==&lt;br /&gt;
&lt;br /&gt;
In order to remove &amp;lt;tt&amp;gt;perl&amp;lt;/tt&amp;gt; as a dependency one needs to transform &amp;lt;tt&amp;gt;gSTLFilt.pl&amp;lt;/tt&amp;gt; into an executable, here are two ways:&lt;br /&gt;
&lt;br /&gt;
'''By using [http://search.cpan.org/~smueller/PAR-0.977/lib/PAR.pm PAR] and [http://search.cpan.org/~autrijus/PAR-0.85_01/script/pp pp]'''&lt;br /&gt;
&lt;br /&gt;
* Install [http://www.activestate.com/Products/activeperl/ ActivePerl]&lt;br /&gt;
* Run from a console window&lt;br /&gt;
 set path=%path%;c:\perl\bin;&amp;quot;c:\Program Files\CodeBlocks\MinGW\bin\&amp;quot;&lt;br /&gt;
 cpan&lt;br /&gt;
 install PAR&lt;br /&gt;
 install pp&lt;br /&gt;
 q&lt;br /&gt;
 set path=%path%;c:\Perl\site\bin\&lt;br /&gt;
 pp gSTLFilt.pl -o gSTLFilt.exe&lt;br /&gt;
&lt;br /&gt;
This takes allot of time and the resulted binary &amp;lt;tt&amp;gt;gSTLFilt.exe&amp;lt;/tt&amp;gt; is 2.5Mb in size with&lt;br /&gt;
a speed penalty and high CPU usage at first run, on subsequent runs the CPU usage is high for one to&lt;br /&gt;
two seconds.&lt;br /&gt;
&lt;br /&gt;
The binary is an executable containing a zip file with required parts of &amp;lt;tt&amp;gt;perl&amp;lt;/tt&amp;gt; to execute property the&lt;br /&gt;
perl script.&lt;br /&gt;
&lt;br /&gt;
'''By using [http://www.indigostar.com/perl2exe.htm Perl2Exe]'''&lt;br /&gt;
&lt;br /&gt;
You don't need to install &amp;lt;tt&amp;gt;perl&amp;lt;/tt&amp;gt; for this to work. The resulted binary size is 500kb, there is no high CPU&lt;br /&gt;
usage at first run. The downfall is that you have a message nag for two seconds at exit (only for the shareware version).&lt;br /&gt;
&lt;br /&gt;
In order to use &amp;lt;tt&amp;gt;gSTLFilt.exe&amp;lt;/tt&amp;gt; instead of &amp;lt;tt&amp;gt;gSTLFilt.pl&amp;lt;/tt&amp;gt; you should modify &amp;lt;tt&amp;gt;%windir%\Proxy-gcc.INI&amp;lt;/tt&amp;gt;&lt;br /&gt;
like this:&lt;br /&gt;
&lt;br /&gt;
 filter_script=.&lt;br /&gt;
 perl_exe=c:\Program Files\CodeBlocks\MinGW\bin\gSTLFilt.exe&lt;br /&gt;
&lt;br /&gt;
The dot for &amp;lt;tt&amp;gt;filter_script&amp;lt;/tt&amp;gt; will give a Warning, but other than that it should work fine.&lt;/div&gt;</summary>
		<author><name>Elzorro</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Using_STLFilt_with_MinGW&amp;diff=5567</id>
		<title>Using STLFilt with MinGW</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Using_STLFilt_with_MinGW&amp;diff=5567"/>
		<updated>2008-08-07T00:09:01Z</updated>

		<summary type="html">&lt;p&gt;Elzorro: /* What is STLFilt */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:User Documentation]]&lt;br /&gt;
__NOEDITSECTION__&lt;br /&gt;
== What is STLFilt ==&lt;br /&gt;
STLFilt is an STL error message decryptor for C++.&lt;br /&gt;
A more detailed description (taken from STLFilt [http://www.bdsoft.com/tools/stlfilt.html webpage]):&lt;br /&gt;
&lt;br /&gt;
''STLFilt simplifies and/or reformats long-winded C++ error and warning messages, with a focus on STL-related diagnostics. The result renders many of even the most cryptic diagnostics comprehensible.''&lt;br /&gt;
&lt;br /&gt;
STLFilt supports the following compilers:&lt;br /&gt;
&lt;br /&gt;
* Comeau C++ (comofilt)&lt;br /&gt;
* GCC 2.95.x/3.x/4.x  (gstlfilt)&lt;br /&gt;
* MSVC++ 6/7/8/9 (incl. Dinkum Libraries) (stlfilt)&lt;br /&gt;
* Metrowerks CodeWarrior Pro 7/8 (cwfilt)&lt;br /&gt;
* Borland C++ / C++Builder (bccfilt)&lt;br /&gt;
* Intel C++ 7/8 (intelfilt)&lt;br /&gt;
* EDG Front End (Generic) (edgfilt)&lt;br /&gt;
* Digital Mars C++ (dmcfilt)&lt;br /&gt;
&lt;br /&gt;
This article will be focusing on ''gSTLFilt'' used with [https://www.codeblocks.org/downloads/binaries#windows Code::Blocks MinGW] bundled package for Microsoft Windows platform.&lt;br /&gt;
&lt;br /&gt;
== Installing STLFilt ==&lt;br /&gt;
&lt;br /&gt;
Because the core of STLFilt is a &amp;lt;tt&amp;gt;perl&amp;lt;/tt&amp;gt; script you will need to have a &amp;lt;tt&amp;gt;perl&amp;lt;/tt&amp;gt; distribution installed, such as [http://www.activestate.com/Products/activeperl/ ActivePerl]&lt;br /&gt;
&lt;br /&gt;
STLFilt is distributed as an zip archive, which can be downloaded from [http://www.bdsoft.com/dist/gstlfilt.zip here].&lt;br /&gt;
&lt;br /&gt;
From the STLFilt archive you will be needing the following files: &amp;lt;tt&amp;gt;c++.exe, Proxy-gcc.INI, and gSTLFilt.pl&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The installation steps are:&lt;br /&gt;
&lt;br /&gt;
* Rename &amp;lt;tt&amp;gt;&amp;quot;c:\Program Files\CodeBlocks\MinGW\bin\mingw32-g++.exe&amp;quot;&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;mingw32-g++2.exe&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Copy &amp;lt;tt&amp;gt;gstlfilt.zip\c++.exe&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;c:\Program Files\CodeBlocks\MinGW\bin\&amp;lt;/tt&amp;gt; and rename it as &amp;lt;tt&amp;gt;mingw32-g++.exe&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Copy &amp;lt;tt&amp;gt;gstlfilt.zip\gSTLFilt.pl&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;c:\Program Files\CodeBlocks\MinGW\bin\&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Copy &amp;lt;tt&amp;gt;gstlfilt.zip\Proxy-gcc.INI&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;%windir%&amp;lt;/tt&amp;gt; (for example: &amp;lt;tt&amp;gt;c:\windows&amp;lt;/tt&amp;gt;)&lt;br /&gt;
* Create an empty file named &amp;lt;tt&amp;gt;filtering.on&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;c:\Program Files\CodeBlocks\MinGW\bin\&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Edit &amp;lt;tt&amp;gt;%windir%\Proxy-gcc.INI&amp;lt;/tt&amp;gt; under &amp;lt;tt&amp;gt;[common]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 filter_script=c:\Program Files\CodeBlocks\MinGW\bin\gSTLFilt.pl&lt;br /&gt;
 toggle_file_dir=c:\Program Files\CodeBlocks\MinGW\bin\                    &lt;br /&gt;
 native_gcc=mingw32-g++2.exe                     &lt;br /&gt;
 perl_exe=c:\perl\bin\perl.exe&lt;br /&gt;
&lt;br /&gt;
== Testing STLFilt ==&lt;br /&gt;
&lt;br /&gt;
Here is a test program:&lt;br /&gt;
 #include &amp;lt;iostream&amp;gt;&lt;br /&gt;
 #include &amp;lt;map&amp;gt;&lt;br /&gt;
 #include &amp;lt;string&amp;gt;&lt;br /&gt;
 #include &amp;lt;iterator&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 using namespace std;&lt;br /&gt;
 &lt;br /&gt;
 int main()&lt;br /&gt;
 {&lt;br /&gt;
     map&amp;lt;int, string&amp;gt; months;&lt;br /&gt;
 &lt;br /&gt;
     months.insert(1, &amp;quot;January&amp;quot;);&lt;br /&gt;
     months.insert(2, &amp;quot;February&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
     copy(months.begin(), months.end(), ostream_iterator&amp;lt;pair&amp;lt;int, string&amp;gt; &amp;gt;(cout, &amp;quot;; &amp;quot;));&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
The error message without STLFilt is:&lt;br /&gt;
&lt;br /&gt;
 Compiling: main.cpp&lt;br /&gt;
 D:\projects\edu\c++\testcb\main.cpp: In function `int main()':&lt;br /&gt;
 D:\projects\edu\c++\testcb\main.cpp:12: error: no matching function for call to `std::map&amp;lt;int, std::string, std::less&amp;lt;int&amp;gt;, std::allocator&amp;lt;std::pair&amp;lt;const int, std::string&amp;gt; &amp;gt; &amp;gt;::insert(int, const char[8])'&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:360: note: candidates are: std::pair&amp;lt;typename std::_Rb_tree&amp;lt;_Key, std::pair&amp;lt;const _Key, _Tp&amp;gt;, std::_Select1st&amp;lt;std::pair&amp;lt;const _Key, _Tp&amp;gt; &amp;gt;, _Compare, _Alloc&amp;gt;::iterator, bool&amp;gt; std::map&amp;lt;_Key, _Tp, _Compare, _Alloc&amp;gt;::insert(const std::pair&amp;lt;const _Key, _Tp&amp;gt;&amp;amp;) [with _Key = int, _Tp = std::string, _Compare = std::less&amp;lt;int&amp;gt;, _Alloc = std::allocator&amp;lt;std::pair&amp;lt;const int, std::string&amp;gt; &amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:384: note:                 typename std::_Rb_tree&amp;lt;_Key, std::pair&amp;lt;const _Key, _Tp&amp;gt;, std::_Select1st&amp;lt;std::pair&amp;lt;const _Key, _Tp&amp;gt; &amp;gt;, _Compare, _Alloc&amp;gt;::iterator std::map&amp;lt;_Key, _Tp, _Compare, _Alloc&amp;gt;::insert(typename std::_Rb_tree&amp;lt;_Key, std::pair&amp;lt;const _Key, _Tp&amp;gt;, std::_Select1st&amp;lt;std::pair&amp;lt;const _Key, _Tp&amp;gt; &amp;gt;, _Compare, _Alloc&amp;gt;::iterator, const std::pair&amp;lt;const _Key, _Tp&amp;gt;&amp;amp;) [with _Key = int, _Tp = std::string, _Compare = std::less&amp;lt;int&amp;gt;, _Alloc = std::allocator&amp;lt;std::pair&amp;lt;const int, std::string&amp;gt; &amp;gt;]&lt;br /&gt;
 D:\projects\edu\c++\testcb\main.cpp:13: error: no matching function for call to `std::map&amp;lt;int, std::string, std::less&amp;lt;int&amp;gt;, std::allocator&amp;lt;std::pair&amp;lt;const int, std::string&amp;gt; &amp;gt; &amp;gt;::insert(int, const char[9])'&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:360: note: candidates are: std::pair&amp;lt;typename std::_Rb_tree&amp;lt;_Key, std::pair&amp;lt;const _Key, _Tp&amp;gt;, std::_Select1st&amp;lt;std::pair&amp;lt;const _Key, _Tp&amp;gt; &amp;gt;, _Compare, _Alloc&amp;gt;::iterator, bool&amp;gt; std::map&amp;lt;_Key, _Tp, _Compare, _Alloc&amp;gt;::insert(const std::pair&amp;lt;const _Key, _Tp&amp;gt;&amp;amp;) [with _Key = int, _Tp = std::string, _Compare = std::less&amp;lt;int&amp;gt;, _Alloc = std::allocator&amp;lt;std::pair&amp;lt;const int, std::string&amp;gt; &amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/stl_map.h:384: note:                 typename std::_Rb_tree&amp;lt;_Key, std::pair&amp;lt;const _Key, _Tp&amp;gt;, std::_Select1st&amp;lt;std::pair&amp;lt;const _Key, _Tp&amp;gt; &amp;gt;, _Compare, _Alloc&amp;gt;::iterator std::map&amp;lt;_Key, _Tp, _Compare, _Alloc&amp;gt;::insert(typename std::_Rb_tree&amp;lt;_Key, std::pair&amp;lt;const _Key, _Tp&amp;gt;, std::_Select1st&amp;lt;std::pair&amp;lt;const _Key, _Tp&amp;gt; &amp;gt;, _Compare, _Alloc&amp;gt;::iterator, const std::pair&amp;lt;const _Key, _Tp&amp;gt;&amp;amp;) [with _Key = int, _Tp = std::string, _Compare = std::less&amp;lt;int&amp;gt;, _Alloc = std::allocator&amp;lt;std::pair&amp;lt;const int, std::string&amp;gt; &amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/stream_iterator.h: In member function `std::ostream_iterator&amp;lt;_Tp, _CharT, _Traits&amp;gt;&amp;amp; std::ostream_iterator&amp;lt;_Tp, _CharT, _Traits&amp;gt;::operator=(const _Tp&amp;amp;) [with _Tp = std::pair&amp;lt;int, std::string&amp;gt;, _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]':&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/stl_algobase.h:234:   instantiated from `_OutputIterator std::__copy(_InputIterator, _InputIterator, _OutputIterator, std::input_iterator_tag) [with _InputIterator = std::_Rb_tree_iterator&amp;lt;std::pair&amp;lt;const int, std::string&amp;gt; &amp;gt;, _OutputIterator = std::ostream_iterator&amp;lt;std::pair&amp;lt;int, std::string&amp;gt;, char, std::char_traits&amp;lt;char&amp;gt; &amp;gt;]'&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/stl_algobase.h:266:   instantiated from `_OutputIterator std::__copy_aux2(_InputIterator, _InputIterator, _OutputIterator, __false_type) [with _InputIterator = std::_Rb_tree_iterator&amp;lt;std::pair&amp;lt;const int, std::string&amp;gt; &amp;gt;, _OutputIterator = std::ostream_iterator&amp;lt;std::pair&amp;lt;int, std::string&amp;gt;, char, std::char_traits&amp;lt;char&amp;gt; &amp;gt;]'&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/stl_algobase.h:308:   instantiated from `_OutputIterator std::__copy_ni2(_InputIterator, _InputIterator, _OutputIterator, __false_type) [with _InputIterator = std::_Rb_tree_iterator&amp;lt;std::pair&amp;lt;const int, std::string&amp;gt; &amp;gt;, _OutputIterator = std::ostream_iterator&amp;lt;std::pair&amp;lt;int, std::string&amp;gt;, char, std::char_traits&amp;lt;char&amp;gt; &amp;gt;]'&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/stl_algobase.h:327:   instantiated from `_OutputIterator std::__copy_ni1(_InputIterator, _InputIterator, _OutputIterator, __false_type) [with _InputIterator = std::_Rb_tree_iterator&amp;lt;std::pair&amp;lt;const int, std::string&amp;gt; &amp;gt;, _OutputIterator = std::ostream_iterator&amp;lt;std::pair&amp;lt;int, std::string&amp;gt;, char, std::char_traits&amp;lt;char&amp;gt; &amp;gt;]'&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/stl_algobase.h:358:   instantiated from `_OutputIterator std::copy(_InputIterator, _InputIterator, _OutputIterator) [with _InputIterator = std::_Rb_tree_iterator&amp;lt;std::pair&amp;lt;const int, std::string&amp;gt; &amp;gt;, _OutputIterator = std::ostream_iterator&amp;lt;std::pair&amp;lt;int, std::string&amp;gt;, char, std::char_traits&amp;lt;char&amp;gt; &amp;gt;]'&lt;br /&gt;
 D:\projects\edu\c++\testcb\main.cpp:15:   instantiated from here&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/stream_iterator.h:196: error: no match for 'operator&amp;lt;&amp;lt;' in '*((std::ostream_iterator&amp;lt;std::pair&amp;lt;int, std::string&amp;gt;, char, std::char_traits&amp;lt;char&amp;gt; &amp;gt;*)this)-&amp;gt;std::ostream_iterator&amp;lt;std::pair&amp;lt;int, std::string&amp;gt;, char, std::char_traits&amp;lt;char&amp;gt; &amp;gt;::_M_stream &amp;lt;&amp;lt; __value'&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/ostream.tcc:63: note: candidates are: std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp;(*)(std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp;)) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/ostream.tcc:74: note:                 std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(std::basic_ios&amp;lt;_CharT, _Traits&amp;gt;&amp;amp;(*)(std::basic_ios&amp;lt;_CharT, _Traits&amp;gt;&amp;amp;)) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/ostream.tcc:86: note:                 std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(std::ios_base&amp;amp;(*)(std::ios_base&amp;amp;)) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/ostream.tcc:121: note:                 std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(long int) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/ostream.tcc:155: note:                 std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(long unsigned int) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/ostream.tcc:98: note:                 std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(bool) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/ostream:178: note:                 std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(short int) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/ostream:189: note:                 std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(short unsigned int) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/ostream:193: note:                 std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(int) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/ostream:204: note:                 std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(unsigned int) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/ostream.tcc:179: note:                 std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(long long int) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/ostream.tcc:214: note:                 std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(long long unsigned int) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/ostream.tcc:238: note:                 std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(double) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/ostream:219: note:                 std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(float) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/ostream.tcc:261: note:                 std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(long double) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/ostream.tcc:284: note:                 std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(const void*) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/ostream.tcc:307: note:                 std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;&amp;amp; std::basic_ostream&amp;lt;_CharT, _Traits&amp;gt;::operator&amp;lt;&amp;lt;(std::basic_streambuf&amp;lt;_CharT, _Traits&amp;gt;*) [with _CharT = char, _Traits = std::char_traits&amp;lt;char&amp;gt;]&lt;br /&gt;
 Process terminated with status 1 (0 minutes, 1 seconds)&lt;br /&gt;
 3 errors, 0 warnings&lt;br /&gt;
&lt;br /&gt;
And now the error message '''with STLFilt enabled''': &lt;br /&gt;
&lt;br /&gt;
 Compiling: main.cpp&lt;br /&gt;
 D:\projects\edu\c++\testcb\main.cpp: In function `int main()':&lt;br /&gt;
 D:\projects\edu\c++\testcb\main.cpp:12: error: No match for &lt;br /&gt;
    `map&amp;lt;int, string&amp;gt;::insert(int, const char[8])'&lt;br /&gt;
 D:\projects\edu\c++\testcb\main.cpp:13: error: No match for &lt;br /&gt;
    `map&amp;lt;int, string&amp;gt;::insert(int, const char[9])'&lt;br /&gt;
 stream_iterator.h: In member function &lt;br /&gt;
    `ostream_iterator&amp;lt;pair&amp;lt;int, string&amp;gt;, char, char_traits&amp;lt;char&amp;gt; &amp;gt; &amp;amp;&lt;br /&gt;
     ostream_iterator&amp;lt;pair&amp;lt;int, string&amp;gt;, char, char_traits&amp;lt;char&amp;gt; &amp;gt;::operator=(&lt;br /&gt;
 	const pair&amp;lt;int, string&amp;gt; &amp;amp;&lt;br /&gt;
     )':&lt;br /&gt;
 stl_algobase.h:234:   instantiated from &lt;br /&gt;
    `ostream_iterator&amp;lt;&lt;br /&gt;
 	pair&amp;lt;int, string&amp;gt;, char, char_traits&amp;lt;char&amp;gt; &lt;br /&gt;
     &amp;gt; __copy(&lt;br /&gt;
 	iter, iter&lt;br /&gt;
       , ostream_iterator&amp;lt;pair&amp;lt;int, string&amp;gt;, char, char_traits&amp;lt;char&amp;gt; &amp;gt;&lt;br /&gt;
       , input_iterator_tag&lt;br /&gt;
     )'&lt;br /&gt;
     [STL Decryptor: Suppressed 4 more STL standard header messages]&lt;br /&gt;
 D:\projects\edu\c++\testcb\main.cpp:15:   instantiated from here&lt;br /&gt;
 stream_iterator.h:196: error: no match for 'operator&amp;lt;&amp;lt;' in '*(&lt;br /&gt;
 	(ostream_iterator&amp;lt;pair&amp;lt;int, string&amp;gt;, char, char_traits&amp;lt;char&amp;gt; &amp;gt; *)this&lt;br /&gt;
     )-&amp;gt;ostream_iterator&amp;lt;pair&amp;lt;int, string&amp;gt;, char, char_traits&amp;lt;char&amp;gt; &amp;gt;&lt;br /&gt;
     ::_M_stream &amp;lt;&amp;lt; __value'&lt;br /&gt;
 STL Decryptor reminders:&lt;br /&gt;
     Use the /hdr:L option to see all suppressed standard lib headers&lt;br /&gt;
     Use the /cand:L option to see all suppressed template candidates&lt;br /&gt;
 Process terminated with status 1 (0 minutes, 2 seconds)&lt;br /&gt;
 3 errors, 0 warnings&lt;br /&gt;
&lt;br /&gt;
== Removing Perl as a dependency ==&lt;br /&gt;
&lt;br /&gt;
In order to remove &amp;lt;tt&amp;gt;perl&amp;lt;/tt&amp;gt; as a dependency one needs to transform &amp;lt;tt&amp;gt;gSTLFilt.pl&amp;lt;/tt&amp;gt; into an executable, here are two ways:&lt;br /&gt;
&lt;br /&gt;
'''By using [http://search.cpan.org/~smueller/PAR-0.977/lib/PAR.pm PAR] and [http://search.cpan.org/~autrijus/PAR-0.85_01/script/pp pp]'''&lt;br /&gt;
&lt;br /&gt;
* Install [http://www.activestate.com/Products/activeperl/ ActivePerl]&lt;br /&gt;
* Run from a console window&lt;br /&gt;
 set path=%path%;c:\perl\bin;&amp;quot;c:\Program Files\CodeBlocks\MinGW\bin\&amp;quot;&lt;br /&gt;
 cpan&lt;br /&gt;
 install PAR&lt;br /&gt;
 install pp&lt;br /&gt;
 q&lt;br /&gt;
 set path=%path%;c:\Perl\site\bin\&lt;br /&gt;
 pp gSTLFilt.pl -o gSTLFilt.exe&lt;br /&gt;
&lt;br /&gt;
This takes allot of time and the resulted binary &amp;lt;tt&amp;gt;gSTLFilt.exe&amp;lt;/tt&amp;gt; is 2.5Mb in size with&lt;br /&gt;
a speed penalty and high CPU usage at first run, on subsequent runs the CPU usage is high for one to&lt;br /&gt;
two seconds.&lt;br /&gt;
&lt;br /&gt;
The binary is an executable containing a zip file with required parts of &amp;lt;tt&amp;gt;perl&amp;lt;/tt&amp;gt; to execute property the&lt;br /&gt;
perl script.&lt;br /&gt;
&lt;br /&gt;
'''By using [http://www.indigostar.com/perl2exe.htm Perl2Exe]'''&lt;br /&gt;
&lt;br /&gt;
You don't need to install &amp;lt;tt&amp;gt;perl&amp;lt;/tt&amp;gt; for this to work. The resulted binary size is 500kb, there is no high CPU&lt;br /&gt;
usage at first run. The downfall is that you have a message nag for two seconds at exit (only for the shareware version).&lt;br /&gt;
&lt;br /&gt;
In order to use &amp;lt;tt&amp;gt;gSTLFilt.exe&amp;lt;/tt&amp;gt; instead of &amp;lt;tt&amp;gt;gSTLFilt.pl&amp;lt;/tt&amp;gt; you should modify &amp;lt;tt&amp;gt;%windir%\Proxy-gcc.INI&amp;lt;/tt&amp;gt;&lt;br /&gt;
like this:&lt;br /&gt;
&lt;br /&gt;
 filter_script=.&lt;br /&gt;
 perl_exe=c:\Program Files\CodeBlocks\MinGW\bin\gSTLFilt.exe&lt;br /&gt;
&lt;br /&gt;
The dot for &amp;lt;tt&amp;gt;filter_script&amp;lt;/tt&amp;gt; will give a Warning, but other than that it should work fine.&lt;/div&gt;</summary>
		<author><name>Elzorro</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Keyboard_Shortcuts_plugin&amp;diff=5566</id>
		<title>Keyboard Shortcuts plugin</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Keyboard_Shortcuts_plugin&amp;diff=5566"/>
		<updated>2008-08-07T00:07:28Z</updated>

		<summary type="html">&lt;p&gt;Elzorro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: Code::Blocks Contrib Plugins]]&lt;br /&gt;
{{Infobox_Plugin|&lt;br /&gt;
  name = Keyboard Shortcuts |&lt;br /&gt;
  logo = [[Image:Generic-plugin.png]] |&lt;br /&gt;
  developer = [[User:Pecan|Pecan]] |&lt;br /&gt;
  maintainer = Pecan |&lt;br /&gt;
  version = &lt;br /&gt;
}}&lt;br /&gt;
== Introduction ==&lt;br /&gt;
This plugin can be used to bind one or more key shortcuts to the menu items.&lt;br /&gt;
&lt;br /&gt;
=== Features ===&lt;br /&gt;
* Includes a configuation panel and a complete system to view/remove/add/edit command shortcuts.&lt;br /&gt;
* Supports multiple key profiles and a complete load/save system is present. &lt;br /&gt;
* Allows the users to customize any menu command they want, and define multiple key-shortcut to each command.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
[[Image:KeyBindConfig.jpg|right|350px|thumb|Image 1. Screenshot]]&lt;br /&gt;
The configuration page for the plugin can be accessed through the Settings\Editor menu, and then selecting the '''Keyboard Shortcuts''' section.&lt;br /&gt;
&lt;br /&gt;
''Image 1'' shows a screenshot of the configuration dialog.&lt;br /&gt;
&lt;br /&gt;
Selecting a command, from the ''Commands'' tree, shows the current shortcuts for that command on the right. In the picture ''Open...'' is selected and the default shortcut ''Ctrl-O'' is displayed.&lt;br /&gt;
&lt;br /&gt;
To add a new shortcut, for the selected command, follow these steps:&lt;br /&gt;
# Place the focus on the text box under ''New Shortcut'' and press the keys, for example F3 or Ctrl-A.&lt;br /&gt;
# Check ''Currently assigned to'', if another command already has that shortcut you will see it's name there. If the text says ''None'' it's safe.&lt;br /&gt;
# Press ''Add'' to add the shortcut on the list.&lt;br /&gt;
# Press ''OK'' on the dialog to save changes and return to editor.&lt;/div&gt;</summary>
		<author><name>Elzorro</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=File:KeyBindConfig.jpg&amp;diff=5565</id>
		<title>File:KeyBindConfig.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=File:KeyBindConfig.jpg&amp;diff=5565"/>
		<updated>2008-08-06T23:22:52Z</updated>

		<summary type="html">&lt;p&gt;Elzorro: Screenshot of the key binding configuration dialog&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Screenshot of the key binding configuration dialog&lt;/div&gt;</summary>
		<author><name>Elzorro</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=CodeBlocks:Community_Portal&amp;diff=5564</id>
		<title>CodeBlocks:Community Portal</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=CodeBlocks:Community_Portal&amp;diff=5564"/>
		<updated>2008-08-04T21:24:11Z</updated>

		<summary type="html">&lt;p&gt;Elzorro: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__ __NOTOC__&lt;br /&gt;
{{Layout_box1|1=&lt;br /&gt;
[[Image:cb_splash.png|left]]&lt;br /&gt;
'''Welcome''' to the Community portal of the Code::Blocks Wiki!&lt;br /&gt;
&lt;br /&gt;
Here you can find Tasks that need to be done and articles that should be written or need improvement. Please help to make this Wiki better! Place requests in the appropriate section. Read the [[Help:CodeBlocksWiki_Handbook|Handbook]] for editing guidelines.  Look at the [[Help:Contents|Help page]] to learn how to edit the wiki.&lt;br /&gt;
&lt;br /&gt;
This Wiki wants ''you''! &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|width=&amp;quot;100%&amp;quot; background-color=&amp;quot;transparent&amp;quot; &lt;br /&gt;
|width=&amp;quot;75%&amp;quot; valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
&amp;lt;!-- Left --&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #ffffff; border: 1px dotted #010101; margin: 5px; padding: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
=== Article wishlist ===&lt;br /&gt;
''Add your wishes here.''&lt;br /&gt;
{{Community:Wishlist}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #ffffff; border: 1px dotted #010101; margin: 5px; padding: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
===  Improvable articles ===&lt;br /&gt;
''Too short? Spelling, grammar or textual mistakes? Out-of-date? Add these articles here or improve one of them.''&lt;br /&gt;
&lt;br /&gt;
{{Community:ImprovableArticles}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #ffffff; border: 1px dotted #010101; margin: 5px; padding: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
=== To-Do List ===&lt;br /&gt;
''Other things that are necessary...''&lt;br /&gt;
{{Community:ToDoList}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #ffffff; border: 1px dotted #010101; margin: 5px; padding: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
=== Help with the Wiki ===&lt;br /&gt;
{{Helplinks}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|width=&amp;quot;20%&amp;quot; valign=&amp;quot;top&amp;quot;|&lt;br /&gt;
&amp;lt;!-- Right --&amp;gt;&lt;br /&gt;
{{CheckForums}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #dfeefb; border: 1px dotted #010101; margin: 5px; padding: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
{{Community:News}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #dfeefb; border: 1px dotted #010101; margin: 5px; padding: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
=== &amp;quot;Special&amp;quot; pages ===&lt;br /&gt;
* [[Special:Newpages|New pages]]&lt;br /&gt;
* [[Special:Statistics|Statistics]]&lt;br /&gt;
* [[Special:Popularpages|Popular pages]]&lt;br /&gt;
* [[Special:Random|Random page]]&lt;br /&gt;
* [[Special:Specialpages|All &amp;quot;special&amp;quot; pages]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Elzorro</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=The_build_process_of_Code::Blocks&amp;diff=5563</id>
		<title>The build process of Code::Blocks</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=The_build_process_of_Code::Blocks&amp;diff=5563"/>
		<updated>2008-08-04T21:19:46Z</updated>

		<summary type="html">&lt;p&gt;Elzorro: /* Pre-build and post-build steps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:User Documentation]]&lt;br /&gt;
&lt;br /&gt;
In this page, the build process is explained in detail. What goes on behind the scenes and &amp;quot;when&amp;quot; is covered. I hope it makes an interesting read :).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Build order =&lt;br /&gt;
As you have probably guessed, Code::Blocks does not launch build commands at random but rather as a well thought out and prepared sequence. But first let's see what components are the subject of the build:&lt;br /&gt;
&lt;br /&gt;
* '''Workspace''': contains one or more projects&lt;br /&gt;
* '''Project''': contains one or more build targets. It also contains the project's files.&lt;br /&gt;
* '''Build target''': project files are assigned to it, which are built as a group and generate one binary output. This output can either be an executable, a dynamic library or a static library. ''NOTE: there is one kind of build target that does not produce a binary output directly but rather just runs its pre/post build steps (which may generate a binary output externally).''&lt;br /&gt;
&lt;br /&gt;
Let's break these subjects in sections and explain them in more detail.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Workspace ==&lt;br /&gt;
The workspace is the top-level container item for organizing your projects. Since there can be only one workspace open at a time, there really is no build order issue for them. It's only one, so it's just built ;).&lt;br /&gt;
&lt;br /&gt;
Use the menu &amp;quot;Build-&amp;gt;Build workspace&amp;quot; to build a workspace (i.e. all the projects contained in it).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
Here, things start getting interesting :).&lt;br /&gt;
&lt;br /&gt;
Projects build order is different depending if the user has set project dependencies or not. Please read on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Without project dependencies ===&lt;br /&gt;
In this case, projects are built in the order of appearence, from top to bottom.&lt;br /&gt;
Most projects though (at least not the &amp;quot;hello world&amp;quot; ones), would want to setup project dependencies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Using project dependencies ===&lt;br /&gt;
Project dependencies are a simple way to tell Code::Blocks that a given project &amp;quot;depends&amp;quot; on another (in the same workspace, always).&lt;br /&gt;
&lt;br /&gt;
Thus imagine in your workspace you have a library project and an executable project which depends on the library. Then you could (and should) tell Code::Blocks about this dependency. To do this, you select &amp;quot;Project-&amp;gt;Properties&amp;quot; and click the &amp;quot;Project's dependencies..&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
''Please notice that the dependency information is saved within the workspace file, not the project file as it is a dependency between two projects within a workspace.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Project_deps.png|frame|Setting up project dependencies]]&lt;br /&gt;
&lt;br /&gt;
It is very easy to use this dialog. Select the project you want to add a dependency and then put a checkmark on all projects that this project depends on. This will ensure that all the projects you checked will be built before the project that depends on them, ensuring a synchronized build.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Tip:''' You don't have to close this dialog and launch the other project's properties again to set their dependencies. You can set all projects dependencies from this same dialog. Just select a different project in the drop-down box :).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some things to note:&lt;br /&gt;
* Dependencies are set directly or indirectly. If project A depends directly on project B and project B depends on project C, then project A indirectly depends on project C too.&lt;br /&gt;
* Code::Blocks is smart enough to watch out for circular dependencies and prohibit them. A circular dependency is caused when project A depends directly or indirectly on project B and project B depends directly or indirectly on project A.&lt;br /&gt;
* Dependencies take effect either if building the whole workspace or a single project. In this case, only the dependencies needed for the project you 're building will be built too.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Build targets ==&lt;br /&gt;
Build targets build order depend on a couple of things.&lt;br /&gt;
# If the user has selected a specific build target in the compiler toolbar's drop-down box, then only this build target is built. If project dependencies are setup for the project containing this target, all projects it depends on will also build their target with the same name. If no such target exists, that project is skipped.&lt;br /&gt;
# If the virtual &amp;quot;All&amp;quot; target is selected, then all targets in the project (and all the projects it depends on) are built in order, top to bottom. There are a couple of exceptions to this:&lt;br /&gt;
#* A target is not built with &amp;quot;All&amp;quot; if the target option (in project properties &amp;quot;Targets&amp;quot; page) &amp;quot;Build this target with All&amp;quot; is not selected.&lt;br /&gt;
#* If no targets in the project have the above option selected, then no virtual &amp;quot;All&amp;quot; target appears in the list.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Preprocessing phase =&lt;br /&gt;
Before the actual build process starts (i.e. the compiler/linker commands start executing), a preprocessing step runs which generates all required command-lines for the entire build process.&lt;br /&gt;
This step caches much of the information it generates, making subsequent builds faster in effect.&lt;br /&gt;
&lt;br /&gt;
This step also runs any attached [[build scripts]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Actual commands execution =&lt;br /&gt;
This is the stage that the build process actually starts, from the user's point of view. The files start getting compiled and finally linked to generate the various binary outputs the build targets define.&lt;br /&gt;
&lt;br /&gt;
In this step, the pre-build and post-build steps are also executed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pre-build and post-build steps ==&lt;br /&gt;
These are commands that can be setup on project and/or target level. They are shell commands that e.g. copy files around or any other operation you can do with a usual OS system shell.&lt;br /&gt;
&lt;br /&gt;
The variables specified in the article [[Variable expansion]] can be used in the scripts to get things like target output directory, project directory, target type and others.&lt;br /&gt;
&lt;br /&gt;
Here's a breakdown of the pre/post build steps execution order for an imaginary project with two targets (Debug/Release):&lt;br /&gt;
&lt;br /&gt;
# Project pre-build steps&lt;br /&gt;
## Target &amp;quot;Debug&amp;quot; pre-build steps&lt;br /&gt;
## Target &amp;quot;Debug&amp;quot; compile files&lt;br /&gt;
## Target &amp;quot;Debug&amp;quot; link files and generate binary output&lt;br /&gt;
## Target &amp;quot;Debug&amp;quot; post-build steps (see notes below)&lt;br /&gt;
## Target &amp;quot;Release&amp;quot; pre-build steps&lt;br /&gt;
## Target &amp;quot;Release&amp;quot; compile files&lt;br /&gt;
## Target &amp;quot;Release&amp;quot; link files and generate binary output&lt;br /&gt;
## Target &amp;quot;Release&amp;quot; post-build steps (see notes below)&lt;br /&gt;
# Project post-build steps&lt;br /&gt;
&lt;br /&gt;
I hope this is self-explaining :)&lt;br /&gt;
&lt;br /&gt;
''NOTE: Pre-build steps are always ran. Post-build steps will run only if the project/target they 're attached to is not up-to-date (i.e. is going to be built). You can change this by selecting &amp;quot;Always execute, even if target is up to date&amp;quot; in the build options.''&lt;br /&gt;
&lt;br /&gt;
=== Script Samples ===&lt;br /&gt;
Post-build script that copies the output file into the folder &amp;quot;C:\Program\bin&amp;quot; in Windows:&lt;br /&gt;
 cmd /c copy &amp;quot;$(PROJECT_DIR)$(TARGET_OUTPUT_FILE)&amp;quot; &amp;quot;C:\Program\bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Execute the bash script &amp;quot;copyresources.sh&amp;quot; in Linux:&lt;br /&gt;
 /bin/sh copyresources.sh&lt;br /&gt;
&lt;br /&gt;
Create a new directory in the output directory:&lt;br /&gt;
 mkdir $(TARGET_OUTPUT_DIR)/data&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Original article by MortenMacFly&lt;br /&gt;
&lt;br /&gt;
[[User:Mandrav|Mandrav]] 04:42, 14 July 2006 (EDT)&lt;br /&gt;
&lt;br /&gt;
[[User:Elzorro|Elzorro]] 23:19, 4 August 2008 (CEST)&lt;/div&gt;</summary>
		<author><name>Elzorro</name></author>
	</entry>
</feed>