<?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=BlueHazzard</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=BlueHazzard"/>
	<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php/Special:Contributions/BlueHazzard"/>
	<updated>2026-04-08T12:43:36Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.0</generator>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Code::Blocks_command_line_arguments&amp;diff=9751</id>
		<title>Code::Blocks command line arguments</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Code::Blocks_command_line_arguments&amp;diff=9751"/>
		<updated>2023-03-28T23:10:53Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: Update after (after [r13245]) add user variable command line arguments&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: User Documentation]]&lt;br /&gt;
== Using command line arguments ==&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
# Find the Code::Blocks shortcut in the Desktop or Start menu.&lt;br /&gt;
# Right click on the icon and select Properties.&lt;br /&gt;
# Select the Shortcut tab.&lt;br /&gt;
# Append the command line arguments you want to use to the end of the Target text (behind the quote mark).&lt;br /&gt;
# Run Code::Blocks by using the shortcut you edited.&lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;C:\Program Files\CodeBlocks\codeblocks.exe&amp;quot; /na /nd&lt;br /&gt;
&lt;br /&gt;
=== *nix ===&lt;br /&gt;
&lt;br /&gt;
# Launch a terminal client, such as XTerm, Gnome Terminal or Konsole.&lt;br /&gt;
# Type &amp;quot;codeblocks&amp;quot; and then append the command line arguments you want to use.&lt;br /&gt;
&lt;br /&gt;
Note: Code::Blocks can not run on a real console, X11 must be running and you must use a graphical terminal emulator.&lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
 codeblocks --no-splash-screen --debug-log&lt;br /&gt;
&lt;br /&gt;
== Command line arguments ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 1px solid gray&amp;quot;&lt;br /&gt;
! Argument &lt;br /&gt;
! Function&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ''&amp;lt;filename&amp;gt;''&lt;br /&gt;
| Specifies the project *.cbp filename or workspace *.workspace filename. For instance ''&amp;lt;filename&amp;gt;'' may be ''c:\some\where\a\project.cbp''. Place this argument at end of command line, just before output redirection if any.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''--file='''''&amp;lt;filename&amp;gt;[:line]''&lt;br /&gt;
| Open file in Code::Blocks and optionally jump to a specific line.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''/h''', '''--help''', '''/?''', '''--?'''&lt;br /&gt;
| Shows a help message about the command line arguments.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''/na''', '''--no-check-associations'''&lt;br /&gt;
| Don't perform any file association checks (Windows only).&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''/nd''', '''--no-dde'''&lt;br /&gt;
| Don't start a [http://en.wikipedia.org/wiki/Dynamic_Data_Exchange DDE] server (Windows only).&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''/ns''', '''--no-splash-screen'''&lt;br /&gt;
| Hides the splash screen when the application is loading.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''/d''', '''--debug-log'''&lt;br /&gt;
| Display application's debug log.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''--prefix='''''&amp;lt;str&amp;gt;''&lt;br /&gt;
| Sets the shared data directory prefix.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''/p''', '''--personality='''''&amp;lt;str&amp;gt;'', '''--profile='''''&amp;lt;str&amp;gt;''&lt;br /&gt;
| Sets the [[Personalities|personality]] to use. You can use ''ask'' as the parameter to list available personalities.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''--rebuild'''&lt;br /&gt;
| Clean and build the project / workspace.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''--build'''&lt;br /&gt;
| Build the project / workspace.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''--target='''''&amp;lt;str&amp;gt;''&lt;br /&gt;
| Sets target for batch build. For example --target=&amp;quot;Release&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''--no-batch-window-close'''&lt;br /&gt;
| Keeps the batch log window visible after the batch build has completed.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''--batch-build-notify'''&lt;br /&gt;
| Shows a message after the batch build has completed.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  '''--user-data-dir=&amp;lt;path&amp;gt;'''&lt;br /&gt;
| specify an alternative directory for user settings and user installed plugins&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  '''--script=&amp;lt;str&amp;gt;'''&lt;br /&gt;
| specify a script file to run after loading&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  '''--target=&amp;lt;str&amp;gt;'''&lt;br /&gt;
| the target for the batch build&lt;br /&gt;
|-&lt;br /&gt;
               &lt;br /&gt;
|-&lt;br /&gt;
|  '''--clean'''&lt;br /&gt;
| clean the project/workspace&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  '''--rebuild'''&lt;br /&gt;
| clean and then build the project/workspace&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  '''--build'''&lt;br /&gt;
| just build the project/workspace&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  '''--verbose'''&lt;br /&gt;
| Enable logging of c::b errors&lt;br /&gt;
|-&lt;br /&gt;
|'''-S''' setName&lt;br /&gt;
|Set &amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt;setName&amp;lt;nowiki&amp;gt;''&amp;lt;/nowiki&amp;gt; to current active set for global variables (after [r13245])&lt;br /&gt;
|-&lt;br /&gt;
|'''-D''' &amp;lt;set&amp;gt;.uservar.mem=val&lt;br /&gt;
|Set the member ''mem'' of uservariable ''uservar'' in set to value ''val''. This overrides the current set value (after [r13245])&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;gt;''' ''&amp;lt;build log file&amp;gt;''&lt;br /&gt;
| Placed in the very last position of command line, this may be used to redirect standard output to log file, this is not a codeblock option as such, but just a DOS/*nix shell usual standard output redirection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Global_compiler_variables&amp;diff=9750</id>
		<title>Global compiler variables</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Global_compiler_variables&amp;diff=9750"/>
		<updated>2023-03-28T23:05:59Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: Add information for command line arguments&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:User Documentation]]&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
Working as a developer on a project which relies on 3rd party libraries involves a lot of unnecessary repetitive tasks, such as setting up build variables according to the local filesystem layout. In the case of project files, care must be taken to not accidentially commit a locally modified copy. If one does not pay attention, this can happen easily for example after changing a build flag to make a release build.&lt;br /&gt;
&lt;br /&gt;
The concept of global compiler variables is an unique new solution for Code::Blocks which addresses this problem.&lt;br /&gt;
Global compiler variables allow you to set up a project once, and any number of developers using any number of different filesystem layouts will be able to compile and develop the project. No local layout information ever needs to be changed more than once.&lt;br /&gt;
&lt;br /&gt;
== Names and Members ==&lt;br /&gt;
Global compiler variables in Code::Blocks are discriminated from [[per-project variables]] by a leading hash sign. Global compiler variables are structured; every variable consists of a ''name'' and an optional ''member''.&lt;br /&gt;
Names are freely definable, while some of the members are built into the IDE. Although you can choose anything for a variable name in principle, it is advisable to pick a known identifier for common packages. This way, the amount of information that the user needs to provide is minimised. The Code::Blocks team provides a [[Recommended global variables|list of recommended variables]] for known packages.&lt;br /&gt;
&lt;br /&gt;
The member &amp;lt;tt&amp;gt;base&amp;lt;/tt&amp;gt; resolves to the same value as the variable name uses without a member (alias).&lt;br /&gt;
&lt;br /&gt;
The members &amp;lt;tt&amp;gt;include&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;lib&amp;lt;/tt&amp;gt; are by default aliases for ''base''&amp;lt;tt&amp;gt;/include&amp;lt;/tt&amp;gt; and ''base''&amp;lt;tt&amp;gt;/lib&amp;lt;/tt&amp;gt;, respectively. However, a user can redefine them if another setup is desired.&lt;br /&gt;
&lt;br /&gt;
It is generally recommended to use the syntax &amp;lt;tt&amp;gt;$(#variable.include)&amp;lt;/tt&amp;gt; instead of &amp;lt;tt&amp;gt;$(#variable)/include&amp;lt;/tt&amp;gt;, as it provides additional flexibility and is otherwise exactly identical in functionality (see [[Global_compiler_variables#Custom_Members_Mini-Tutorial|mini tutorial]]).&lt;br /&gt;
&lt;br /&gt;
The members &amp;lt;tt&amp;gt;cflags&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;lflags&amp;lt;/tt&amp;gt; are empty by default and can be used to provide the ability to feed the same consistent set of compiler/linker flags to all builds on one machine.&lt;br /&gt;
Beginning with revision 2664 (4 July 2006), Code::Blocks allows you to define custom variable members in addition to the builtin ones.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Gcv_ui.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Constraints ==&lt;br /&gt;
*Both set and global compiler variable &amp;lt;i&amp;gt;names&amp;lt;/i&amp;gt; may not be empty, must not contain white space, must start with a letter and must consist of alphanumeric characters. Cyrillic or Chinese letters are &amp;lt;i&amp;gt;not&amp;lt;/i&amp;gt; alphanumeric characters.&amp;lt;br /&amp;gt;If Code::Blocks is given invalid character sequences as name, it may replace them without asking.&lt;br /&gt;
*Every variable requires its base to be defined. Everything else is optional, but the base is absolutely mandatory. If you don't define a variable's base, it will not be saved (no matter what other fields you have defined).&lt;br /&gt;
*You may not define a custom member that has the same name as a builtin member. Currently, the custom member will overwrite the builtin member, but in general, the behaviour for this case is undefined. If &amp;lt;tt&amp;gt;'libext'&amp;lt;/tt&amp;gt; is a custom member we can only write &amp;lt;tt&amp;gt;$(#variable.libext)&amp;lt;/tt&amp;gt; and not &amp;lt;tt&amp;gt;$(#variable)/libext&amp;lt;/tt&amp;gt;.&lt;br /&gt;
*Variable and member values may contain &amp;lt;i&amp;gt;arbitrary&amp;lt;/i&amp;gt; character sequences, subject to the following three constraints:&lt;br /&gt;
**You may not define a variable by a value that references the same variable or any of its members&lt;br /&gt;
**You may not define a member by a value that references the same member&lt;br /&gt;
**You may not define a member or variable by a value that references the same variable or member through a cyclic dependency.&lt;br /&gt;
Code::Blocks will detect the most obvious cases of recursive definitions (which may happen by accident), but it will not perform an excessive depth analysis of every possible abuse. If you enter crap, then crap is what you will get, you have been warned.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Examples:&amp;lt;/u&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
defining &amp;lt;tt&amp;gt;wx.include&amp;lt;/tt&amp;gt; as &amp;lt;tt&amp;gt;$(#wx)/include&amp;lt;/tt&amp;gt; is redundant, but perfectly legal&amp;lt;br /&amp;gt;&lt;br /&gt;
defining &amp;lt;tt&amp;gt;wx.include&amp;lt;/tt&amp;gt; as &amp;lt;tt&amp;gt;$(#wx.include)&amp;lt;/tt&amp;gt; is illegal and will be detected by Code::Blocks&amp;lt;br /&amp;gt;&lt;br /&gt;
defining &amp;lt;tt&amp;gt;wx.include&amp;lt;/tt&amp;gt; as &amp;lt;tt&amp;gt;$(#cb.lib)&amp;lt;/tt&amp;gt; which again is defined as &amp;lt;tt&amp;gt;$(#wx.include)&amp;lt;/tt&amp;gt; will create an infinite loop&lt;br /&gt;
&lt;br /&gt;
== Using Global Compiler Variables ==&lt;br /&gt;
All you need to do to start using global compiler variables is to put them in your project! Yes, it is really that easy.&lt;br /&gt;
&lt;br /&gt;
When the IDE detects the presence of an unknown global variable, it will prompt you to enter its value. The value will be saved in your settings, so you never need to enter the information twice.&lt;br /&gt;
&lt;br /&gt;
If you need to modify or delete a variable at a later time, you can do so from the settings menu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Example:&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Globvarsdir.png]]&lt;br /&gt;
&lt;br /&gt;
The above image shows both per-procect and global variables. &amp;lt;tt&amp;gt;WX_CFG&amp;lt;/tt&amp;gt; is defined in the project, but &amp;lt;tt&amp;gt;WX&amp;lt;/tt&amp;gt; is a global user variable.&lt;br /&gt;
&lt;br /&gt;
== Variable Sets ==&lt;br /&gt;
Sometimes, you want to use different versions of the same library, or you develop two branches of the same program. Although it is still possible to get around with a global compiler variable, it can become tedious. For this purpose, Code::Blocks supports variable &amp;lt;i&amp;gt;sets&amp;lt;/i&amp;gt;. A variable set is an independent collection of variables identified by a name (set names have the same constraints as variable names).&lt;br /&gt;
&lt;br /&gt;
If you wish to switch to a different set of variables, you simply select a different set from the menu. Different sets are not required to have the same variables, and identical variables in different sets are not required to have the same values, or even the same custom members.&lt;br /&gt;
&lt;br /&gt;
Another positive thing about sets is that if you have a dozen variables and you want to have a new set with one of these variables pointing to a different location, you are not required to re-enter all this redundant data again. You can simply create a clone of your current set, this will duplicate all of your variables.&lt;br /&gt;
&lt;br /&gt;
Deleting a set also deletes all variables in that set (but not in another set). The &amp;quot;default&amp;quot; set is always present and cannot be deleted.&lt;br /&gt;
&lt;br /&gt;
== Custom Members Mini-Tutorial ==&lt;br /&gt;
As stated above, writing &amp;lt;tt&amp;gt;$(#var.include)&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;$(#var)/include&amp;lt;/tt&amp;gt; is exactly the same thing by default.&lt;br /&gt;
So why would you want to write something as unintuitive as &amp;lt;tt&amp;gt;$(#var.include)&amp;lt;/tt&amp;gt;?&lt;br /&gt;
&lt;br /&gt;
Let's take a standard Boost installation under Windows as an example. Generally, you would expect a fictional package &amp;lt;tt&amp;gt;ACME&amp;lt;/tt&amp;gt; to have its include files under &amp;lt;tt&amp;gt;ACME/include&amp;lt;/tt&amp;gt; and its libraries under &amp;lt;tt&amp;gt;ACME/lib&amp;lt;/tt&amp;gt;. Optionally, it might place its headers into yet another subfolder called &amp;lt;tt&amp;gt;acme&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Thus, after adding the correct paths to the compiler and linker options, you would expect to &amp;lt;tt&amp;gt;#include &amp;lt;acme/acme.h&amp;gt;&amp;lt;/tt&amp;gt; and link to &amp;lt;tt&amp;gt;libacme.a&amp;lt;/tt&amp;gt; (or whatever it happens to be).&lt;br /&gt;
&lt;br /&gt;
Boost, however, installs headers into &amp;lt;tt&amp;gt;C:\Boost\include\boost-1_33_1\boost&amp;lt;/tt&amp;gt; and its libraries under &amp;lt;tt&amp;gt;C:\Boost\lib&amp;lt;/tt&amp;gt; by default. It seems impossible to get this under one hood without having to adjust everything on every new PC, especially if you have to work under Linux or some other OS, too.&lt;br /&gt;
&lt;br /&gt;
This is where the true power of global user variables is unveiled. When defining the value of the &amp;lt;tt&amp;gt;#boost&amp;lt;/tt&amp;gt; variable, you go one step further than usual. You define the member &amp;lt;tt&amp;gt;include&amp;lt;/tt&amp;gt; as &amp;lt;tt&amp;gt;C:\Boost\include\boost-1_33_1\boost&amp;lt;/tt&amp;gt; and the member &amp;lt;tt&amp;gt;lib&amp;lt;/tt&amp;gt; as &amp;lt;tt&amp;gt;C:\Boost\lib&amp;lt;/tt&amp;gt;, respectively.&lt;br /&gt;
Your projects using &amp;lt;tt&amp;gt;$(#boost.include)&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;$(#boost.lib)&amp;lt;/tt&amp;gt; will magically work on every PC without any modifications. You don't need to know why, you don't want to know why.&lt;br /&gt;
&lt;br /&gt;
== Command line arguments ==&lt;br /&gt;
After revision [r13245] it is possible to use command line arguments to override and define global variables and set the current active set.&lt;br /&gt;
* '-S' parameter for setting current active set via command line&lt;br /&gt;
* '-D' parameter for defining/overriding user variable in form &amp;lt;tt&amp;gt;-D set.variable.member=value&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;-D variable.member=value&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Variable expansion]]&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Code::Blocks_and_Makefiles&amp;diff=9747</id>
		<title>Code::Blocks and Makefiles</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Code::Blocks_and_Makefiles&amp;diff=9747"/>
		<updated>2023-03-09T20:58:15Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: add warning about outdated and remove warning about not using makefiles&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:User Documentation]]&lt;br /&gt;
&amp;lt;big style=&amp;quot;color:#ff0000&amp;quot;&amp;gt;'''WARNING: this article is outdated'''&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CB does not, by default,  use makefiles it has its own .cbp files which do the same thing automatically.  There are a few reasons that you might want to use a makefile.  You maybe migrating  a project that has a makefile into CB.  Another possibility is wanting to take a project out of CB.&lt;br /&gt;
&lt;br /&gt;
Needing to use a pre-processor is not a valid reason to use a makefile as CB has a pre/post build option.  From the menu project-&amp;gt;build options there appears a tab with pre/post build steps that can be used for this purpose.&lt;br /&gt;
&lt;br /&gt;
This document deals with makefiles using mingw32-make 3.81, CB 8.02 and Wxwidgets 2.8 on Windows Vista, although I’m sure most of it will apply to other configurations.&lt;br /&gt;
&lt;br /&gt;
If you decide that you want to use your own makefile, you need to enter the screen from project-&amp;gt;Properties and you will see a tick box for 'this is a custom makefile'.  Tick this box, make sure the name just above it is the one you want for your makefile.&lt;br /&gt;
&lt;br /&gt;
You should also look at project-&amp;gt;build options.  There is a tab called 'Make commands' (you have to scroll the tabs horizontally to get to it).  In the field 'build project/target' you should see the line $make -f $makefile $target.   Assuming you're in debug mode $target will probably be called 'debug' which is probably not what you want.  You should change $target to your output file's name  (with the .exe extension and without the leading $). &lt;br /&gt;
&lt;br /&gt;
One other useful addition is in  Project-&amp;gt;Project Tree-&amp;gt;Edit File types and categories.  If you add makefiles with the mask *.mak (CB seems to prefer .mak to .mk) you will be able to add your makefile with the extension .mak to the project and it will appear in the project management pane on the left.&lt;br /&gt;
&lt;br /&gt;
Assuming you are going to edit the makefile within CB you should make sure that the editor uses tabs (as opposed to spaces).  This is a generic problem with make as it needs to start command lines with a tab character and many editors replace tabs with spaces.  To set this in CB, open the settings-&amp;gt;editor window and check the tickbox  for use tab character.&lt;br /&gt;
&lt;br /&gt;
The real problems start now however.  CB’s automatic makefile adds all the headers for Wxwidgets, but if you use a makefile, all this is turned off and you have to do this yourself.&lt;br /&gt;
&lt;br /&gt;
Fortunately CB has another feature that can come to your rescue.  If you go to menu Settings-&amp;gt;Compiler and Debugger,  scroll the tabs horizontally to the right end and you will find the tab ‘other settings’.  In there click on the tick box for ‘Save build to HTML …’.  This will cause CB to create, at build time, an HTML file that records all the build commands.&lt;br /&gt;
&lt;br /&gt;
If you compile (without using a makefile – so if you’ve already reset everything –sorry) the default Wxwidgets  minimum program, you can see the compiler and linker commands that produce this file.&lt;br /&gt;
&lt;br /&gt;
Assuming that you are going to use this as the basis for your project, you can use the content of the HTML file produced as the basis of your makefile.&lt;br /&gt;
&lt;br /&gt;
You can’t just copy it from the HTML viewer in CB (there’s no such facility in CB) but you can load the file into a browser or editor and copy it from there.  It can be found in your project directory with &amp;lt;the_same_name_as_your_project&amp;gt;_build_log.HTML.   Sadly it will require a little tweaking as shown below.&lt;br /&gt;
&lt;br /&gt;
Here’s a copy of a build file for the basic Wxwidgets program as described above.  &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
mingw32-make.exe -f test.mak test.exe&lt;br /&gt;
&lt;br /&gt;
mingw32-g++.exe -pipe -mthreads -D__GNUWIN32__ -D__WXMSW__ -DWXUSINGDLL -DwxUSE_UNICODE -Wall -g -D__WXDEBUG__ -IC:\PF\wxWidgets2.8\include -IC:\PF\wxWidgets2.8\contrib\include -IC:\PF\wxWidgets2.8\lib\gcc_dll\mswud -c C:\Development\test\testApp.cpp -o obj\Debug\testApp.o&lt;br /&gt;
&lt;br /&gt;
mingw32-g++.exe -pipe -mthreads -D__GNUWIN32__ -D__WXMSW__ -DWXUSINGDLL -DwxUSE_UNICODE -Wall -g -D__WXDEBUG__ -IC:\PF\wxWidgets2.8\include -IC:\PF\wxWidgets2.8\contrib\include -IC:\PF\wxWidgets2.8\lib\gcc_dll\mswud -c C:\Development\test\testMain.cpp -o obj\Debug\testMain.o&lt;br /&gt;
&lt;br /&gt;
windres -IC:\PF\wxWidgets2.8\include -IC:\PF\wxWidgets2.8\contrib\include -IC:\PF\wxWidgets2.8\lib\gcc_dll\mswud -iC:\Development\test\resource.rc -o obj\Debug\resource.coff&lt;br /&gt;
&lt;br /&gt;
mingw32-g++.exe -LC:\PF\wxWidgets2.8\lib\gcc_dll -o bin\Debug\test.exe obj\Debug\testApp.o obj\Debug\testMain.o obj\Debug\resource.coff -lwxmsw28ud -mwindows&lt;br /&gt;
&lt;br /&gt;
Process terminated with status 0 (0 minutes, 12 seconds)&lt;br /&gt;
0 errors, 0 warnings&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above can be converted to the makefile below.  I have deliberately left it fairly close to the HTML file output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# test program makefile&lt;br /&gt;
&lt;br /&gt;
Incpath1 = C:\PF\wxWidgets2.8\include&lt;br /&gt;
Incpath2 = C:\PF\wxWidgets2.8\contrib\include&lt;br /&gt;
Incpath3 = C:\PF\wxWidgets2.8\lib\gcc_dll\mswud&lt;br /&gt;
&lt;br /&gt;
Libpath = C:\PF\wxWidgets2.8\lib\gcc_dll&lt;br /&gt;
&lt;br /&gt;
flags = -pipe -mthreads -D__GNUWIN32__ -D__WXMSW__ -DWXUSINGDLL -DwxUSE_UNICODE -Wall -g -D__WXDEBUG__&lt;br /&gt;
&lt;br /&gt;
CXX = mingw32-g++.exe&lt;br /&gt;
&lt;br /&gt;
test.exe : obj\Debug\testApp.o obj\Debug\testMain.o obj\Debug\resource.coff&lt;br /&gt;
    $(CXX) -L$(Libpath) -o bin\Debug\test.exe obj\Debug\testApp.o obj\Debug\testMain.o obj\Debug\resource.coff -lwxmsw28ud -mwindows&lt;br /&gt;
&lt;br /&gt;
obj\Debug\testMain.o : C:\Development\test\testMain.cpp&lt;br /&gt;
    $(CXX) $(flags) -I$(Incpath1) -I$(Incpath2) -I$(Incpath3) -c C:\Development\test\testMain.cpp -o obj\Debug\testMain.o&lt;br /&gt;
&lt;br /&gt;
obj\Debug\testApp.o : C:\Development\test\testApp.cpp&lt;br /&gt;
    $(CXX) $(flags) -I$(Incpath1) -I$(Incpath2) -I$(Incpath3) -c C:\Development\test\testApp.cpp -o obj\Debug\testApp.o&lt;br /&gt;
&lt;br /&gt;
obj\Debug\resource.coff : C:\Development\test\resource.rc&lt;br /&gt;
    windres -I$(Incpath1) -I$(Incpath2) -I$(Incpath3) -iC:\Development\test\resource.rc -oobj\Debug\resource.coff&lt;br /&gt;
&lt;br /&gt;
# original output from codeblocks compilation&lt;br /&gt;
# note I've had to add compiling the .res file&lt;br /&gt;
#&lt;br /&gt;
# mingw32-g++.exe -pipe -mthreads -D__GNUWIN32__ -D__WXMSW__ -DWXUSINGDLL -DwxUSE_UNICODE -Wall -Wall -g -D__WXDEBUG__&lt;br /&gt;
# -Wall -g -IC:\PF\wxWidgets2.8\include -IC:\PF\wxWidgets2.8\contrib\include -IC:\PF\wxWidgets2.8\lib\gcc_dll\mswud&lt;br /&gt;
# -c C:\Development\test\testApp.cpp -o obj\Debug\testApp.o&lt;br /&gt;
&lt;br /&gt;
# mingw32-g++.exe -pipe -mthreads -D__GNUWIN32__ -D__WXMSW__ -DWXUSINGDLL -DwxUSE_UNICODE -Wall -Wall -g -D__WXDEBUG__&lt;br /&gt;
# -Wall -g -IC:\PF\wxWidgets2.8\include -IC:\PF\wxWidgets2.8\contrib\include -IC:\PF\wxWidgets2.8\lib\gcc_dll\mswud&lt;br /&gt;
# -c C:\Development\test\testMain.cpp -o obj\Debug\testMain.o&lt;br /&gt;
&lt;br /&gt;
# mingw32-g++.exe -LC:\PF\wxWidgets2.8\lib\gcc_dll -o bin\Debug\test.exe obj\Debug\testApp.o obj\Debug\testMain.o&lt;br /&gt;
# obj\Debug\resource.res -lwxmsw28ud -mwindows&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I have written a generic makefile  which I have only tested on Windows Vista but that should work with any project started as described above.  You have to change the name of the project and set the paths as appropriate (you will probably only need to change Ppath and WXpath).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Generic program makefile&lt;br /&gt;
# -- assumes that you name your directory with same name as the project file&lt;br /&gt;
# -- eg project test is in &amp;lt;development path&amp;gt;\test\&lt;br /&gt;
&lt;br /&gt;
# Project name and version&lt;br /&gt;
Proj := test&lt;br /&gt;
Version := Debug&lt;br /&gt;
&lt;br /&gt;
#paths for Project (Ppath) Object files (Opath) and binary path (Bpath)&lt;br /&gt;
Ppath := C:\Development\$(Proj)&lt;br /&gt;
Opath := obj\$(Version)&lt;br /&gt;
Bpath := bin\$(Version)&lt;br /&gt;
&lt;br /&gt;
#Library &amp;amp; header paths&lt;br /&gt;
WXpath := C:\PF\wxWidgets2.8&lt;br /&gt;
IncWX := $(WXpath)\include&lt;br /&gt;
IncCON := $(WXpath)\contrib\include&lt;br /&gt;
IncMSW := $(WXpath)\lib\gcc_dll\mswud&lt;br /&gt;
Libpath := $(WXpath)\lib\gcc_dll&lt;br /&gt;
&lt;br /&gt;
flags = -pipe -mthreads -D__GNUWIN32__ -D__WXMSW__ -DWXUSINGDLL -DwxUSE_UNICODE -Wall -g -D__WXDEBUG__&lt;br /&gt;
&lt;br /&gt;
CXX = mingw32-g++.exe&lt;br /&gt;
&lt;br /&gt;
Obj := $(Opath)\$(Proj)App.o $(Opath)\$(Proj)Main.o $(Opath)\resource.coff&lt;br /&gt;
&lt;br /&gt;
$(Proj).exe : $(Obj)&lt;br /&gt;
    $(CXX) -L$(Libpath) -o $(Bpath)\$(Proj).exe $(Obj) -lwxmsw28ud -mwindows&lt;br /&gt;
&lt;br /&gt;
$(Opath)\$(Proj)Main.o : $(Ppath)\$(Proj)Main.cpp&lt;br /&gt;
    $(CXX) $(flags) -I$(IncWX) -I$(IncCON) -I$(IncMSW) -c $^ -o $@&lt;br /&gt;
&lt;br /&gt;
$(Opath)\$(Proj)App.o : C:\Development\$(Proj)\$(Proj)App.cpp&lt;br /&gt;
    $(CXX) $(flags) -I$(IncWX) -I$(IncCON) -I$(IncMSW) -c $^ -o $@&lt;br /&gt;
&lt;br /&gt;
$(Opath)\resource.coff : C:\Development\$(Proj)\resource.rc&lt;br /&gt;
    windres -I$(IncWX) -I$(IncCON) -I$(IncMSW) -i$^ -o $@&lt;br /&gt;
&lt;br /&gt;
.PHONEY : clean&lt;br /&gt;
&lt;br /&gt;
clean:&lt;br /&gt;
    del $(Bpath)\$(Proj).exe $(Obj) $(Opath)\resource.coff&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
''Note: [[Tools+ reference#Export makefile|exporting a makefile]] of a Code::Blocks project is indirectly possible.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[User:Gavrillo|Gavrillo]] 22:34, 21 May 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Automatic_source_paths&amp;diff=9743</id>
		<title>Automatic source paths</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Automatic_source_paths&amp;diff=9743"/>
		<updated>2023-02-21T22:30:14Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Automatic source paths is a feature of codeblocks to automatically mirror folders from the source directory to the codeblocks project file.&lt;br /&gt;
A use case is for example if a external program creates source files that are used in codeblocks. With automatic source paths codeblocks automatically detects changes (addition and removal of source files) in the given directory and mirrors them to the project file.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
The functionality can be accessed over the Project-&amp;gt;Automatic source folders menu entry:&lt;br /&gt;
[[File:Globs menu.png|frame|center]]&lt;br /&gt;
This opens the overview dialog&lt;br /&gt;
[[File:Globs ui 1.png|frame|center]]&lt;br /&gt;
* '''Path''': The base path in which files are searched for automatic import&lt;br /&gt;
* '''Recursive''': Search also in sub folders&lt;br /&gt;
* '''Wildcard''': Filter files according this wildcard (for example ''*.cpp'': import only files ending with .cpp&lt;br /&gt;
* '''Add''': Add an new path&lt;br /&gt;
* '''Delete''': Delete current selected path from the list&lt;br /&gt;
* '''Edit''': Edit current selected path from the list&lt;br /&gt;
Adding or Editing a path opens the ''Edit path dialog''&lt;br /&gt;
[[File:Globs ui 2 2.png|alt=|center|thumb]]&lt;br /&gt;
# The path to automatically overwatch&lt;br /&gt;
# Open the system path dialog to select the path to automatically overwatch&lt;br /&gt;
# Open the global variables dialog to select a global variable that is replaced and overwatched by codeblocks&lt;br /&gt;
# If this is checked all sub folder of this path are also overwatched&lt;br /&gt;
# A list of wildchards separated by ';' for file extension that are imported for this glob (ex. ''*.h'' to import only header files, ''*.cpp;*.h'' to import cpp and h files&lt;br /&gt;
# Select targets where the files found in Path are added&lt;br /&gt;
# Checkbox to select all/none targets&lt;br /&gt;
# When this box is checked files will be added to the project file. The project file will be modified every time a file is found. This allows to change properties of the file (like target, or linker flags). The properties are saved in the project file and reloaded when the project is reloaded. If this box is left unchecked the files are loaded when codeblocks is running, but not saved to project file. With this unchecked file properties can not be saved and will be lost.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
In this example we use the following folder structure:&lt;br /&gt;
[[File:Directory 1.png|thumb|center]]&lt;br /&gt;
Lets assume that files in ''src'' are added/removed automatically by a third party software. Adding now an ''automatic source folder'' in codeblocks will automatically add/remove files if they are changed on the file system.&lt;br /&gt;
[[File:Edit glob example 2.png|thumb|center]]&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Automatic_source_paths&amp;diff=9742</id>
		<title>Automatic source paths</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Automatic_source_paths&amp;diff=9742"/>
		<updated>2023-02-21T22:27:55Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: Update with new UI&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Automatic source paths is a feature of codeblocks to automatically mirror folders from the source directory to the codeblocks project file.&lt;br /&gt;
A use case is for example if a external program creates source files that are used in codeblocks. With automatic source paths codeblocks automatically detects changes (addition and removal of source files) in the given directory and mirrors them to the project file.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
The functionality can be accessed over the Project-&amp;gt;Automatic source folders menu entry:&lt;br /&gt;
[[File:Globs menu.png|frame|center]]&lt;br /&gt;
This opens the overview dialog&lt;br /&gt;
[[File:Globs ui 1.png|frame|center]]&lt;br /&gt;
* '''Path''': The base path in which files are searched for automatic import&lt;br /&gt;
* '''Recursive''': Search also in sub folders&lt;br /&gt;
* '''Wildcard''': Filter files according this wildcard (for example ''*.cpp'': import only files ending with .cpp&lt;br /&gt;
* '''Add''': Add an new path&lt;br /&gt;
* '''Delete''': Delete current selected path from the list&lt;br /&gt;
* '''Edit''': Edit current selected path from the list&lt;br /&gt;
Adding or Editing a path opens the ''Edit path dialog''&lt;br /&gt;
[[File:Globs ui 2 2.png|alt=|center|thumb]]&lt;br /&gt;
# The path to automatically overwatch&lt;br /&gt;
# Open the system path dialog to select the path to automatically overwatch&lt;br /&gt;
# Open the global variables dialog to select a global variable that is replaced and overwatched by codeblocks&lt;br /&gt;
# If this is checked all sub folder of this path are also overwatched&lt;br /&gt;
# A list of wildchards separated by ';' for file extension that are imported for this glob (ex. ''*.h'' to import only header files, ''*.cpp;*.h'' to import cpp and h files&lt;br /&gt;
# Select targets where the files found in Path are added&lt;br /&gt;
# Checkbox to select all/none targets&lt;br /&gt;
# When this box is checked files will be added to the project file. The project file will be modified every time a file is found. If this box is left unchecked the files are loaded when codeblocks is running, but not saved to project file. With this unchecked file properties can not be saved and will be lost.&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
In this example we use the following folder structure:&lt;br /&gt;
[[File:Directory 1.png|thumb|center]]&lt;br /&gt;
Lets assume that files in ''src'' are added/removed automatically by a third party software. Adding now an ''automatic source folder'' in codeblocks will automatically add/remove files if they are changed on the file system.&lt;br /&gt;
[[File:Edit glob example 2.png|thumb|center]]&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=File:Globs_ui_2_2.png&amp;diff=9741</id>
		<title>File:Globs ui 2 2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=File:Globs_ui_2_2.png&amp;diff=9741"/>
		<updated>2023-02-21T22:22:44Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;new globs ui&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=User_documentation&amp;diff=9740</id>
		<title>User documentation</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=User_documentation&amp;diff=9740"/>
		<updated>2023-02-11T20:31:02Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: /* Application development */ add automatic source paths&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Documentation]]&lt;br /&gt;
[[Category:User Documentation]]&lt;br /&gt;
== Official user document ==&lt;br /&gt;
The Official Code::Blocks user document can be found [https://www.codeblocks.org/user-manual here].&lt;br /&gt;
* Contributed [http://www.bt4.pl/programy/dla-programistow/code-blocks/ Polish translation].&lt;br /&gt;
&lt;br /&gt;
== Using Code::Blocks ==&lt;br /&gt;
&lt;br /&gt;
'''[[Installing Code::Blocks]]'''&lt;br /&gt;
:How to install Code::Blocks (from binary or source).&lt;br /&gt;
&lt;br /&gt;
'''[[Creating a new project]]'''&lt;br /&gt;
:How to get started with project setup and management.&lt;br /&gt;
&lt;br /&gt;
'''[[Keyboard Shortcuts]]'''&lt;br /&gt;
:List of keyboard shortcuts that can be used in Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
'''[[Basic Tutorial]]'''&lt;br /&gt;
:Information useful to make sense of Code::Blocks' settings (for newer users).&lt;br /&gt;
&lt;br /&gt;
'''[[Command line arguments]]'''&lt;br /&gt;
:List of command-line arguments that can be used with Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
'''[[Tools+ reference|User-defined tools]]'''&lt;br /&gt;
:Integrate external programs into Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
'''[[The build process of Code::Blocks]]'''&lt;br /&gt;
:Information about how Code::Blocks actually builds your source code.&lt;br /&gt;
&lt;br /&gt;
'''[[wxSmith tutorials]]'''&lt;br /&gt;
:Information about how to use wxSmith RAD editor&lt;br /&gt;
&lt;br /&gt;
'''[[Building an Non-Unicode Win32 Code::Blocks]]'''&lt;br /&gt;
:Information about how to modify the Code::Blocks project files for an Non-Unicode build of Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
'''[[Code::Blocks and Makefiles]]'''&lt;br /&gt;
:Using makefiles with CB is not normally necessary (CB does this automatically) but if you have some compelling reason to use one - here's how.&lt;br /&gt;
&lt;br /&gt;
'''[[Variable expansion]]'''&lt;br /&gt;
:CB can use ''dynamic'' variables, that get replaced automatically, on various places, like in the build options or the post and pre build steps&lt;br /&gt;
&lt;br /&gt;
'''[[Manipulating multiple projects at the same time]]'''&lt;br /&gt;
:To manipulate options of multiple projects at the same time you can use a contributed plugin named ''Project options manipulator''&lt;br /&gt;
&lt;br /&gt;
'''[[Miscellaneous]]'''&lt;br /&gt;
:Miscellaneous things related to the user development experience.  This is a catch all place.&lt;br /&gt;
&lt;br /&gt;
== Customizing Code::Blocks ==&lt;br /&gt;
&lt;br /&gt;
'''[[Scripting Code::Blocks]]'''&lt;br /&gt;
:Information about scripting Code::Blocks with [http://www.squirrel-lang.org/ Squirrel].&lt;br /&gt;
&lt;br /&gt;
'''[[Syntax highlighting custom colour themes]]'''&lt;br /&gt;
:Change the color of the editor, code highlighting &lt;br /&gt;
&lt;br /&gt;
'''[[Code::Blocks Plugins]]'''&lt;br /&gt;
:List of plugins that come with Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
'''[[Personalities]]'''&lt;br /&gt;
:Customize the Code::Blocks user interface for different workflows.&lt;br /&gt;
&lt;br /&gt;
== Application development ==&lt;br /&gt;
&lt;br /&gt;
* [[Variable expansion|Builtin variables]]&lt;br /&gt;
* [[Recommended global variables]]&lt;br /&gt;
* [[Code::Blocks variable types synthesis]]&lt;br /&gt;
* [[Debugging with Code::Blocks]]&lt;br /&gt;
* [[UnitTesting|Unit testing with Code::Blocks]]&lt;br /&gt;
* [[Adding support for non C/C++ files to the build system]]&lt;br /&gt;
* [[Codeblocks with scons|Integrating the SCons build system]]&lt;br /&gt;
* [[Automatic source paths]]&lt;br /&gt;
&lt;br /&gt;
== Compilers ==&lt;br /&gt;
&lt;br /&gt;
* [[Global compiler variables]]&lt;br /&gt;
* [[Precompiled headers]]&lt;br /&gt;
* [[Installing a supported compiler]]&lt;br /&gt;
* [[Installing Cygwin Compiler]]&lt;br /&gt;
* [[Installing Fortran Compiler]]&lt;br /&gt;
* [[Installing Objective-C Compiler]]&lt;br /&gt;
* [[Installing Uniwin remote compiler]]&lt;br /&gt;
* [[Using Xming for remote compilation]]&lt;br /&gt;
* [[Using STLFilt with MinGW]]&lt;br /&gt;
* [[Code::Blocks and Cross Compilers|Using cross compilers]]&lt;br /&gt;
* [[Cross Compiling wxWidgets Applications on Linux]]&lt;br /&gt;
* [[Integrating Microsoft Visual Toolkit 2003 with Code::Blocks IDE]]&lt;br /&gt;
* [[Integrating Microsoft Visual C 6 with Code::Blocks IDE]]&lt;br /&gt;
* [[Using the Code::Blocks IDE with SDCC on PIC MCUs]]&lt;br /&gt;
* [[Using Code::Blocks with Open Watcom]]&lt;br /&gt;
* [[Custom compiler|Creating a custom compiler]] (Unfinished page.)&lt;br /&gt;
* [[64Bit Windows|Setting up for 64-bit windows development with Mirosoft compilers]]&lt;br /&gt;
* [[Developing 32 bit apps under 64 bit Linux (Ubuntu)]]&lt;br /&gt;
* [https://www.orbiterwiki.org/wiki/Free_Compiler_Setup_Under_Linux External: Cross compiler MSVS 2005 under Linux through Wine]&lt;br /&gt;
&lt;br /&gt;
== User interface development ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- * [[WxSmith Tutorial &amp;amp; Pointers|Creating a dialog for wxWidgets with wxSmith]] outdated --&amp;gt;&lt;br /&gt;
* [[wxSmith tutorials|Creating a dialog for wxWidgets with wxSmith]]&lt;br /&gt;
&lt;br /&gt;
== Third-party libraries ==&lt;br /&gt;
&lt;br /&gt;
* [[BoostWindowsQuickRef|Using Boost with Code::Blocks (Windows)]]&lt;br /&gt;
* [[Using wxWidgets|Using wxWidgets with Code::Blocks]]&lt;br /&gt;
* [[Using SDL with Code::Blocks]]&lt;br /&gt;
* [[Using GLFW with Code::Blocks]]&lt;br /&gt;
* [[Using Allegro with Code::Blocks]]&lt;br /&gt;
* [[Using FreeGlut with Code::Blocks]]&lt;br /&gt;
* [[Using OpenCV with Code::Blocks]]&lt;br /&gt;
&lt;br /&gt;
== Third-party Applications ==&lt;br /&gt;
&lt;br /&gt;
* [[KiCadBuildQuickRef|How-to build KiCad with Code::Blocks]]&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Automatic_source_paths&amp;diff=9739</id>
		<title>Automatic source paths</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Automatic_source_paths&amp;diff=9739"/>
		<updated>2023-02-11T20:30:16Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Automatic source paths is a feature of codeblocks to automatically mirror folders from the source directory to the codeblocks project file.&lt;br /&gt;
A use case is for example if a external program creates source files that are used in codeblocks. With automatic source paths codeblocks automatically detects changes (addition and removal of source files) in the given directory and mirrors them to the project file.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
The functionality can be accessed over the Project-&amp;gt;Automatic source folders menu entry:&lt;br /&gt;
[[File:Globs menu.png|frame|center]]&lt;br /&gt;
This opens the overview dialog&lt;br /&gt;
[[File:Globs ui 1.png|frame|center]]&lt;br /&gt;
* '''Path''': The base path in which files are searched for automatic import&lt;br /&gt;
* '''Recursive''': Search also in sub folders&lt;br /&gt;
* '''Wildcard''': Filter files according this wildcard (for example ''*.cpp'': import only files ending with .cpp&lt;br /&gt;
* '''Add''': Add an new path&lt;br /&gt;
* '''Delete''': Delete current selected path from the list&lt;br /&gt;
* '''Edit''': Edit current selected path from the list&lt;br /&gt;
Adding or Editing a path opens the ''Edit path dialog''&lt;br /&gt;
[[File:Globs ui 2.png|thumb|alt=|center]]&lt;br /&gt;
# The path to automatically overwatch&lt;br /&gt;
# Open the system path dialog to select the path to automatically overwatch&lt;br /&gt;
# Open the global variables dialog to select a global variable that is replaced and overwatched by codeblocks&lt;br /&gt;
# If this is checked all sub folder of this path are also overwatched&lt;br /&gt;
# A list of wildchards separated by ';' for file extension that are imported for this glob (ex. ''*.h'' to import only header files, ''*.cpp;*.h'' to import cpp and h files&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
In this example we use the following folder structure:&lt;br /&gt;
[[File:Directory 1.png|thumb|center]]&lt;br /&gt;
Lets assume that files in ''src'' are added/removed automatically by a third party software. Adding now an ''automatic source folder'' in codeblocks will automatically add/remove files if they are changed on the file system.&lt;br /&gt;
[[File:Edit glob example.png|thumb|center]]&lt;br /&gt;
[[File:Edit glob example 2.png|thumb|center]]&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=File:Edit_glob_example_2.png&amp;diff=9738</id>
		<title>File:Edit glob example 2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=File:Edit_glob_example_2.png&amp;diff=9738"/>
		<updated>2023-02-11T20:29:50Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;edit glob example&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=File:Edit_glob_example.png&amp;diff=9737</id>
		<title>File:Edit glob example.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=File:Edit_glob_example.png&amp;diff=9737"/>
		<updated>2023-02-11T20:28:36Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;example for adding a src to globs&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=File:Directory_1.png&amp;diff=9736</id>
		<title>File:Directory 1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=File:Directory_1.png&amp;diff=9736"/>
		<updated>2023-02-11T20:23:42Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;globs example directory structure&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Automatic_source_paths&amp;diff=9735</id>
		<title>Automatic source paths</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Automatic_source_paths&amp;diff=9735"/>
		<updated>2023-02-11T20:14:20Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Automatic source paths is a feature of codeblocks to automatically mirror folders from the source directory to the codeblocks project file.&lt;br /&gt;
A use case is for example if a external program creates source files that are used in codeblocks. With automatic source paths codeblocks automatically detects changes (addition and removal of source files) in the given directory and mirrors them to the project file.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
The functionality can be accessed over the Project-&amp;gt;Automatic source folders menu entry:&lt;br /&gt;
[[File:Globs menu.png|frame|center]]&lt;br /&gt;
This opens the overview dialog&lt;br /&gt;
[[File:Globs ui 1.png|frame|center]]&lt;br /&gt;
* '''Path''': The base path in which files are searched for automatic import&lt;br /&gt;
* '''Recursive''': Search also in sub folders&lt;br /&gt;
* '''Wildcard''': Filter files according this wildcard (for example ''*.cpp'': import only files ending with .cpp&lt;br /&gt;
* '''Add''': Add an new path&lt;br /&gt;
* '''Delete''': Delete current selected path from the list&lt;br /&gt;
* '''Edit''': Edit current selected path from the list&lt;br /&gt;
Adding or Editing a path opens the ''Edit path dialog''&lt;br /&gt;
[[File:Globs ui 2.png|thumb|alt=|center]]&lt;br /&gt;
1) The path to automatically overwatch&lt;br /&gt;
2) Open the system path dialog to select the path to automatically overwatch&lt;br /&gt;
3) Open the global variables dialog to select a global variable that is replaced and overwatched by codeblocks&lt;br /&gt;
4) If this is checked all sub folder of this path are also overwatched&lt;br /&gt;
5) A list of wildchards separated by ';' for file extension that are imported for this glob (ex. ''*.h'' to import only header files, ''*.cpp;*.h'' to import cpp and h files&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Automatic_source_paths&amp;diff=9734</id>
		<title>Automatic source paths</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Automatic_source_paths&amp;diff=9734"/>
		<updated>2023-02-11T20:13:41Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: creation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Automatic source paths is a feature of codeblocks to automatically mirror folders from the source directory to the codeblocks project file.&lt;br /&gt;
A use case is for example if a external program creates source files that are used in codeblocks. With automatic source paths codeblocks automatically detects changes (addition and removal of source files) in the given directory and mirrors them to the project file.&lt;br /&gt;
&lt;br /&gt;
== UI ==&lt;br /&gt;
The functionality can be accessed over the Project-&amp;gt;Automatic source folders menu entry:&lt;br /&gt;
[[File:Globs menu.png|frame|center]]&lt;br /&gt;
This opens the overview dialog&lt;br /&gt;
[[File:Globs ui 1.png|frame|center]]&lt;br /&gt;
* '''Path''': The base path in which files are searched for automatic import&lt;br /&gt;
* '''Recursive''': Search also in sub folders&lt;br /&gt;
* '''Wildcard''': Filter files according this wildcard (for example ''*.cpp'': import only files ending with .cpp&lt;br /&gt;
* '''Add''': Add an new path&lt;br /&gt;
* '''Delete''': Delete current selected path from the list&lt;br /&gt;
* '''Edit''': Edit current selected path from the list&lt;br /&gt;
Adding or Editing a path opens the ''Edit path dialog''&lt;br /&gt;
[[File:Globs ui 2.png|thumb]]&lt;br /&gt;
1) The path to automatically overwatch&lt;br /&gt;
2) Open the system path dialog to select the path to automatically overwatch&lt;br /&gt;
3) Open the global variables dialog to select a global variable that is replaced and overwatched by codeblocks&lt;br /&gt;
4) If this is checked all sub folder of this path are also overwatched&lt;br /&gt;
5) A list of wildchards separated by ';' for file extension that are imported for this glob (ex. ''*.h'' to import only header files, ''*.cpp;*.h'' to import cpp and h files&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=File:Globs_ui_2.png&amp;diff=9733</id>
		<title>File:Globs ui 2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=File:Globs_ui_2.png&amp;diff=9733"/>
		<updated>2023-02-11T20:08:27Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;edit glob ui&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=File:Globs_ui_1.png&amp;diff=9732</id>
		<title>File:Globs ui 1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=File:Globs_ui_1.png&amp;diff=9732"/>
		<updated>2023-02-11T20:02:49Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;globs ui&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=File:Globs_menu.png&amp;diff=9731</id>
		<title>File:Globs menu.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=File:Globs_menu.png&amp;diff=9731"/>
		<updated>2023-02-11T20:00:52Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Menu overview of glob&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Scripting_commands&amp;diff=9596</id>
		<title>Scripting commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Scripting_commands&amp;diff=9596"/>
		<updated>2022-04-15T15:34:18Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: Fix naming and add constructor arguments for TinyXml binding&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scripting Code::Blocks]]&lt;br /&gt;
Scripting is no good if all you can do is use the scripting language's built-in commands only. The host application (Code::Blocks) needs to expose parts of its internals to scripts, so scripts can use and control the host.&lt;br /&gt;
&lt;br /&gt;
Code::Blocks has exposed a very large chunk of its SDK to scripts. This makes scripting in Code::Blocks nearly as powerful as native code (C++).&lt;br /&gt;
&lt;br /&gt;
In this page all the exported constants, functions and classes are documented as a quick reference. For detailed documentation on each function/class, refer to the Code::Blocks SDK documentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''NOTE: Please remember that [http://www.squirrel-lang.org Squirrel] is typeless. Data types mentioned below are only used for documentation purposes.''&lt;br /&gt;
&lt;br /&gt;
''NOTE: Please keep in mind that if a function has default parameters in C++ (which can be ommitted), you still have to type them for scripts (for e.g. exposed wxWidgets functionality). This means you *have* to use e.g. wxFileName.GetFullPath(wxPATH_NATIVE) instead of e.g only wxFileName.GetFullPath().&lt;br /&gt;
&lt;br /&gt;
''NOTE: Updated to '''12.11'''&lt;br /&gt;
&lt;br /&gt;
== Application object ==&lt;br /&gt;
The application object is accessed through the variable named '''&amp;lt;tt&amp;gt;App&amp;lt;/tt&amp;gt;'''. Currently it has no bound functions...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Global functions ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Log || wxString || logs to the application log&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || LogDebug || wxString || logs to the debug log&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || LogWarning || wxString || logs a warning&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || LogError || wxString || logs an error&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || Message || wxString,wxString,int || arg1=msg, arg2=caption, arg3=buttons; see API docs for cbMessageBox()&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ShowMessage || wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ShowWarning || wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ShowError || wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ShowInfo || wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || ReplaceMacros || wxString || Does [[Variable_expansion|variable expansion]] on the input wxString&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ScriptingManager* || GetScriptingManager ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ProjectManager* || GetProjectManager ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EditorManager* || GetEditorManager ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ConfigManager* || GetConfigManager ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| UserVariableManager* || GetUserVariableManager || ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| CompilerFactory* || GetCompilerFactory ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || GetArrayFromString ||  wxString,wxString,bool ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetStringFromArray ||  wxArrayString,wxString,bool ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || EscapeSpaces ||  wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || UnixFilename || wxString, int || arg1=filename, arg2=wxPATH_NATIVE, wxPATH_WIN, ...&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| FileType || FileTypeOf || wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || URLEncode || wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || NotifyMissingFile || wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || GetPlatformsFromString || wxString  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString  || GetStringFromPlatforms || int,bool||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void|| InfoWindow || wxString,wxString,int,int ||  pop-up box in the lower right, see infowindow.h&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetFolder || int || see API docs for ConfigManager::GetFolder()&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || LocateDataFile|| wxString, int || see API docs for ConfigManager::LocateDataFile()&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || InstallPlugin || wxString,bool, bool || Install a binary plugin&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || ExecuteToolPlugin || wxString || Execute a tool plugin (found in Plugins menu)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || ConfigureToolPlugin || wxString || Configure a tool plugin (found in Plugins menu)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || CallMenu || wxString || Call a menu entry describing its path using slashes (e.g. &amp;quot;/Valgrind/Run Valgrind::MemCheck&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Include || wxString || similar to C/C++ ''&amp;lt;tt&amp;gt;#include &amp;quot;name&amp;quot;&amp;lt;/tt&amp;gt;''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || Require || wxString ||arg=script_filename, return 0 if ok&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || IsNull || void* ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || wxLaunchDefaultBrowser || wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxColour || wxGetColourFromUser || [wxColour] ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| long || wxGetNumberFromUser || wxString,wxString,wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || wxGetPasswordFromUser || wxString,wxString,wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || wxGetTextFromUser || wxString,wxString,wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| long || wxString_ToLong || wxString const ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ScriptingManager ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || RegisterScriptMenu || wxString, wxString || registers the script file (arg1) under a menu item (arg2).&lt;br /&gt;
e.g. &amp;lt;tt&amp;gt;GetScriptingManager().RegisterScriptMenu(_T(&amp;quot;sample.script&amp;quot;), _T(&amp;quot;Scripts/Sample script&amp;quot;))&amp;lt;/tt&amp;gt;;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Notes about the &amp;lt;tt&amp;gt;RegisterScriptMenu&amp;lt;/tt&amp;gt; function:&amp;lt;br/&amp;gt;&lt;br /&gt;
* The second argument (menu item) is a string containing the full menu path to create the menu item. The path separator is a slash (/). For example, the string &amp;quot;Settings/Sample menu/Sample item&amp;quot; would create the menu path &amp;quot;Settings-&amp;gt;Sample menu-&amp;gt;Sample item&amp;quot;.&lt;br /&gt;
* When each part of the path is evaluated, it is checked whether it starts with a number followed by a colon (:). If so then this is considered to be a menu index in the parent menu and the menu is inserted at that index instead of being appended to the menu. The number and colon are removed from the string.&lt;br /&gt;
* If the menu item starts with a dash (-), then a separator line is prepended in the menu before the menu item (e.g. &amp;quot;Scripts/'''-'''Sample script&amp;quot;).&lt;br /&gt;
* For your convenience, all menu items created using this function have one extra functionality: if you keep the SHIFT key pressed while clicking on any of these &amp;quot;script menu items&amp;quot;, instead of running the attached script, Code::Blocks will open it in the editor for you to view/edit :).&lt;br /&gt;
* Have a look at the [[Startup script#Example|startup script example]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ConfigManager ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || Read || const wxString, int || arg1=key, arg2=default_val&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || Read || const wxString, bool ||  arg1=key, arg2=default_val&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| float || Read || const wxString, float ||  arg1=key, arg2=default_val&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || Read || const wxString, const wxString || arg1=key, arg2=default_val&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Write || const wxString, int || arg1=key, arg2=value&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Write || const wxString, bool || arg1=key, arg2=value&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Write || const wxString, float || arg1=key, arg2=value&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Write || const wxString, const wxString, bool ||arg1=key, arg2=value, arg3=ignore_value_empty&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ProjectManager ==&lt;br /&gt;
see API docs for 'ProjectManager::...' in 'include\projectmanager.h'&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments in Prototype&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetDefaultPath || ( ) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetDefaultPath || (const wxString&amp;amp; path) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| cbProject* || GetActiveProject || ( ) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || GetProjectCount || ( ) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| cbProject* || GetProject || (int) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetProject || (cbProject* project, bool refresh = true) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || LoadWorkspace || (const wxString&amp;amp; filename = DEFAULT_WORKSPACE)|| &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SaveWorkspace || ( )  || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SaveWorkspaceAs || (const wxString&amp;amp; filename) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || CloseWorkspace || ( ) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| cbProject* || IsOpen || (const wxString&amp;amp; filename) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| cbProject* || LoadProject || (const wxString&amp;amp; filename, bool activateIt = true) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SaveProject || (cbProject* project) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SaveProjectAs || (cbProject* project) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SaveActiveProject || ( ) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SaveActiveProjectAs || ( ) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SaveAllProjects || ( ) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || CloseProject || (cbProject* project, bool dontsave = false, bool refresh = true) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || CloseActiveProject || (bool dontsave = false) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || CloseAllProjects || (bool dontsave = false) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| cbProject* || NewProject || (const wxString&amp;amp; filename = wxEmptyString) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || AddFileToProject || (const wxString&amp;amp; filename, cbProject* project = 0L, int target = -1) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || AskForBuildTargetIndex || (cbProject* project = 0L) || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RebuildTree || ( ) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || AddProjectDependency || (cbProject* base, cbProject* dependsOn) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemoveProjectDependency || (cbProject* base, cbProject* doesNotDependOn) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ClearProjectDependencies || (cbProject* base) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemoveProjectFromAllDependencies || (cbProject* base) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ProjectsArray* || GetDependenciesForProject || (cbProject* base) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ConfigureProjectDependencies || (cbProject* base = 0) || &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== EditorManager ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments in Prototype&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Configure || ( ) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| cbEditor* || New || (const wxString&amp;amp; newFileName = wxEmptyString) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| cbEditor* || Open || (const wxString&amp;amp; filename) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| cbEditor* || IsBuiltinOpen || (const wxString&amp;amp; filename) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| cbEditor* || GetBuiltinEditor || (const wxString&amp;amp; filename)|(int index) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| cbEditor* || GetBuiltinActiveEditor || ( ) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EditorBase* || GetActiveEditor || ( ) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ActivateNext || ( ) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ActivatePrevious || ( ) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SwapActiveHeaderSource || ( ) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || CloseActive || (bool dontsave = false) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || Close || (const wxString&amp;amp; filename,bool dontsave = false)|(int index,bool dontsave = false),(EditorBase* editor,bool dontsave = false) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || CloseAll || (bool dontsave=false) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || Save || (const wxString&amp;amp; filename)|(int index)||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SaveActive || ( ) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SaveAs || (int index) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SaveActiveAs || ( ) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SaveAll || ( ) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || ShowFindDialog || (bool replace,  bool explicitly_find_in_files = false) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UserVariableManager ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments in Prototype&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || Exists || (const wxString&amp;amp; variable) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== IO namespace ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments in Prototype&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || DirectoryExists || (const wxString&amp;amp; dir) || '''1)'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || SelectDirectory || (const wxString&amp;amp; message, const wxString&amp;amp; initialPath, bool showCreateDirButton) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || '''CreateDirectory''' || (const wxString&amp;amp; full_path, int perms) || arg1=dir, arg2=permissions '''1)'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || '''RemoveDirectory''' || (const wxString&amp;amp; src) || '''1)'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || '''CopyFile''' ||(const wxString&amp;amp; src, const wxString&amp;amp; dst, bool overwrite) || '''1)'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || '''RenameFile''' || (const wxString&amp;amp; src, const wxString&amp;amp; dst) || old,new  '''1)'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || '''RemoveFile''' || (const wxString&amp;amp; src) || '''1)'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || FileExists || (const wxString&amp;amp; file) || '''1)'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || SelectFile || (const wxString&amp;amp; title, const wxString&amp;amp; defaultFile, const wxString&amp;amp; filter) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || ReadFileContents || (const wxString&amp;amp; filename) ||  '''1)'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || '''WriteFileContents''' || (const wxString&amp;amp; filename, const wxString&amp;amp; contents) || filename,contents '''1)'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || '''Execute''' || (const wxString&amp;amp; command) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || '''ExecuteAndGetOutput''' || (const wxString&amp;amp; command) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || '''ExecuteAndGetOutputAndError''' || (const wxString&amp;amp; command, bool prepend_error) ||if 'prepend_error' is true gives an error string&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetCwd || ( )  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetCwd || (const wxString&amp;amp; dir) || directory (currently working directory)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
The namespaces are accesses by prepending it's name (e.g. &amp;quot;IO.&amp;quot;) to the scripting function, e.g. &amp;quot;IO.DirectoryExists(...)&amp;quot;. &amp;quot;::&amp;quot; is only used when declaring the members of the namespace.&lt;br /&gt;
The functions in bold are going through the scripts security layer so there is no guarantee calling them will succeed. You should always examine the return value...&lt;br /&gt;
There exists one constant too, named ''allowInsecureScripts'', which allow you to test whether Code::Blocks was compiled with the functions going through the security layer.&lt;br /&gt;
&lt;br /&gt;
'''NOTE: 1)''' All paths/filenames are expanded via the ReplaceMacros function prior the function is called. So it is possible to copy the project output file with&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
IO.CopyFile(_T(&amp;quot;$(TARGET_OUTPUT_FILE)&amp;quot;),_T(&amp;quot;output_directory/output_file&amp;quot;),true);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CompilerFactory ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments in Prototype&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || IsValidCompilerID || (const wxString&amp;amp; id) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || GetCompilerIndex || (const wxString&amp;amp; id) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetDefaultCompilerID || ( )  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetCompilerVersionString ||  (const wxString&amp;amp; Id) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || CompilerInheritsFrom || ( ) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetCompilerIDByName || (const wxString &amp;amp;name ) || Makes it possible to find the compiler id by its name. Available since rev 9823.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== wxString ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || _T || const char* || basically this is the wxString constructor&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || _ || const char* || the same as _T, but should be used for translatable strings&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || operator= || const wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || operator+ || const wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || operator+ || const int ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || operator+= || const wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || operator+= || const int ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || operator&amp;lt; || const wxString || _T(&amp;quot;abc&amp;quot;) &amp;lt;  _T(&amp;quot;cba&amp;quot;) -&amp;gt; true&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || operator&amp;lt;= || const wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || operator&amp;gt;= || const wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || operator&amp;gt; || const wxString  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || Find || wxString || -1 if not found&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || Matches || wxString || not use '==' !!, returns true if the string contents matches a mask containing '*' and '?'&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AddChar || char ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| char || GetChar || int || arg1=position&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || IsEmpty ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || Length ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || length ||  || same as Length()&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || len ||  || same as Length()&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || size ||  || same as Length()&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || Lower ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || LowerCase ||  || same as Lower()&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || MakeLower ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || Upper ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || UpperCase ||  || same as Upper()&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || MakeUpper ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || Mid || int, int || arg1=position, arg2=long&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || Remove || int, int || arg1=position, arg2=long&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemoveLast || int  || remove the last characters&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || Replace || wxString, wxString,bool || arg3=true -&amp;gt; all occurrences else the first&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || Right || int x || return the x last characters&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || AfterFirst || char || not found -&amp;gt; _T(&amp;quot;&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || AfterLast || char || not found -&amp;gt; all the character string&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || BeforeFirst || char || not found -&amp;gt; all the character string&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || BeforeLast || char || not found -&amp;gt; _T(&amp;quot;&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
''NOTE: Is instantiated in a script using: local my_wxstring = ::wxString();&lt;br /&gt;
&lt;br /&gt;
== wxArrayString ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Add || wxString, size_t || arg1=string, arg2=number of copies to add&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Clear ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || GetCount ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || Index || wxString || -1 If not found&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || Item || int || not work with wx 2.9.x ?!&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
''NOTE: Is instantiated in a script using: local my_wxarraystring = ::wxArrayString();&lt;br /&gt;
&lt;br /&gt;
== wxColour ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| byte || Red || ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| byte || Green || ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| byte || Blue || ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || IsOk || || ONLY if (wxVERSION_NUMBER &amp;lt; 2900)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Set || byte, byte, byte, byte || red, green, blue, alpha : into [0..255]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
''NOTE: Is instantiated in a script using: local my_wxcolour = ::wxColour();&lt;br /&gt;
&lt;br /&gt;
''EXAMPLE: local my_wxcolour = ::wxColour(); my_wxcolour.Set(0xFF, 0x00, 0x00, 0x55); ::print(my_wxcolour) -&amp;gt; [r=255, g=0, b=0]&lt;br /&gt;
&lt;br /&gt;
== wxFileName == &lt;br /&gt;
'''UNDER VERIFICATION'''&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remarks &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Assign || const wxFileName || creates the file name from an other wxFileName&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Assign || const wxString, wxPathFormat || arg1=full_path, arg2=wformat=xPATH_NATIVE ...&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AssignCwd || const wxString || arg1=volume&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AssignDir|| const wxString, wxPathFormat || arg1=name_dir, arg2=format=wxPATH_NATIVE ... &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AssignHomeDir ||  || sets this file name object to the home directory&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Clear ||  || reset all components to default, uninitialized state&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ClearExt ||  || removes the extension from the file name resulting in a file name with no trailing dot&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || GetDirCount ||  || returns the number of directories in the file name.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || GetDirs ||  || returns the directories in string array form&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetExt ||  || returns the file name extension.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetFullName ||  || returns the full name (including extension but excluding directories).&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetFullPath || wxPathFormat || arg=format=wxPATH_NATIVE ...&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetLongPath ||  || return the long form of the path (returns identity on non-Windows platforms)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetName ||  || returns the name part of the filename (without extension)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetPath || int, wxPathFormat || arg1=flags=wxPATH_GET_VOLUME..., arg2=format=wxPATH_NATIVE ...&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetShortPath ||  || return the short form of the path (returns identity on non-Windows platforms).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetVolume ||  || returns the string containing the volume for this file name&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || HasExt ||  || returns true if an extension is present.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || HasName ||  || returns true if a name is present&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || HasVolume ||  || returns true if a volume specifier is present&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || InsertDir||int, const wxString || arg1=before_dir, arg2=name_dir&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || IsAbsolute || wxPathFormat ||arg=format=wxPATH_NATIVE...&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || IsOk ||  || returns true if the filename is valid&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || IsRelative || wxPathFormat ||arg=format=wxPATH_NATIVE...&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || IsDir ||  || returns true if this object represents a directory&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || MakeAbsolute ||const wxString, wxPathFormat|| arg1=cwd=_T(&amp;quot;&amp;quot;) or ..., arg2=format=wxPATH_NATIVE or ...&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || MakeRelativeTo ||const wxString, wxPathFormat|| arg1=path_base, arg2=format=wxPATH_NATIVE or ...&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || Normalize ||int, const wxString, wxPathFormat||arg1=flags=wxPATH_NORM_ALL, arg2=cwd=_T(&amp;quot;&amp;quot;),arg3=format=wxPATH_NATIVE or ...&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || PrependDir || const wxString ||arg=dir &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemoveDir || int ||arg=pos RemoveLastDir&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemoveLastDir || || removes last directory component from the path&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SameAs || const wxFileName, wxPathFormat || arg1=filepath, arg2=format=wxPATH_NATIVE&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SetCwd||  || changes the current working directory&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetExt ||const wxString ||arg=extension&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetEmptyExt ||  || sets the extension of the file name to be an empty extension&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetFullName || wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetName || wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetVolume || wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
''NOTE: Is instantiated in a script using: local my_filename = ::wxFileName()&lt;br /&gt;
&lt;br /&gt;
== wxPoint ==&lt;br /&gt;
'''UNDER CONSTRUCTION'''&lt;br /&gt;
&lt;br /&gt;
'' Instantiate integer points 2D&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remarks&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxPoint || operator= || const wxPoint|| default assignment operator is ok&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || operator== ||const wxPoint||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || operator!= || const wxPoint||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || x || ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || y || ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
''NOTE: Is instantiated in a script using: local my_wxpoint = ::wxPoint();&lt;br /&gt;
&lt;br /&gt;
''EXAMPLE: local my_wxpoint = ::wxPoint(); my_wxpoint.x = 5;  my_wxpoint.y = 12; // not use ::print(my_wxpoint)&lt;br /&gt;
&lt;br /&gt;
== wxSize ==&lt;br /&gt;
'''UNDER CONSTRUCTION'''&lt;br /&gt;
&lt;br /&gt;
'' Instantiate integers values (X, Y) &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remarks&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxSize || operator= || const wwSize|| default assignment operator is ok&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || operator== ||const wxSize||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || operator!= || const wxSize||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || GetWidth || || return X&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || GetHeight || || return Y&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetWidth || int w|| X=w&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetHeight || int h|| Y=h&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Set || int w, int h|| X=w, Y=h&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
''NOTE: Is instantiated in a script using: local my_wxsize = ::wxSize();&lt;br /&gt;
&lt;br /&gt;
''EXAMPLE: local my_wxsize = ::wxSize(); my_wxsize.SetWidth(5);  my_wxsize.SetHeight(12); // not use ::print(my_wxsize)&lt;br /&gt;
&lt;br /&gt;
== ProjectFile ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments in Prototype&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AddBuildTarget || const wxString&amp;amp; targetName || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RenameBuildTarget || const wxString&amp;amp; oldTargetName, const wxString&amp;amp; newTargetName || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemoveBuildTarget || const wxString&amp;amp; targetName || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| const wxArrayString&amp;amp; || GetBuildTargets || ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetBaseName || ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetObjName || ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetObjName || const wxString&amp;amp; targetName || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| cbProject* || GetParentProject || ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString|| GetCustomBuildCommand|| const wxString&amp;amp; compilerId ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void  || SetCustomBuildCommand || const wxString&amp;amp; compilerId, const wxString&amp;amp; newBuildCommand ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || GetUseCustomBuildCommand|| const wxString&amp;amp; compilerId ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void  || SetUseCustomBuildCommand || const wxString&amp;amp; compilerId, bool useCustomBuildCommand ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxFileName || file ||  || (variable)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || relativeFilename ||  || (variable)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || relativeToCommonTopLevelPath ||  || (variable)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || compile ||  || (variable)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || link ||  || (variable)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || weight ||  || (variable)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || compilerVar ||  || (variable)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || buildTargets ||  || (variable)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== CompileOptionsBase ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments in Prototype&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AddPlatform || int platform || windows,unix,mac&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemovePlatform || int platform ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetPlatforms || int platform ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || GetPlatforms || ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SupportsCurrentPlatform || ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetLinkerOptions || const wxArrayString&amp;amp; linkerOpts ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetLinkLibs || const wxArrayString&amp;amp; linkLibs ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetLinkerExecutable || LinkerExecutableOption option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LinkerExecutableOption || GetLinkerExecutable || ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetCompilerOptions || const wxArrayString&amp;amp; compilerOpts ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetResourceCompilerOptions || const wxArrayString&amp;amp; resourceCompilerOpts ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetIncludeDirs || const wxArrayString&amp;amp; includeDirs ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetResourceIncludeDirs || const wxString&amp;amp; option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetLibDirs || const wxArrayString&amp;amp; libDirs ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetCommandsBeforeBuild || const wxArrayString&amp;amp; commands ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetCommandsAfterBuild || const wxArrayString&amp;amp; commands ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || GetLinkerOptions ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || GetLinkLibs ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || GetCompilerOptions ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || GetResourceCompilerOptions ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || GetIncludeDirs ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || GetResourceIncludeDirs ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || GetLibDirs ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || GetCommandsBeforeBuild ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || GetCommandsAfterBuild ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || GetModified ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetModified || bool modified ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AddLinkerOption || const wxString&amp;amp; option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AddLinkLib || const wxString&amp;amp; lib ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AddCompilerOption || const wxString&amp;amp; option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AddResourceCompilerOption || const wxString&amp;amp; option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AddIncludeDir || const wxString&amp;amp; option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AddResourceIncludeDir || const wxString&amp;amp; option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AddLibDir || const wxString&amp;amp; option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AddCommandsBeforeBuild || const wxString&amp;amp; command ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AddCommandsAfterBuild || const wxString&amp;amp; command ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ReplaceLinkerOption || const wxString&amp;amp; option, const wxString&amp;amp; new_option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ReplaceLinkLib || const wxString&amp;amp; option, const wxString&amp;amp; new_option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ReplaceCompilerOption || const wxString&amp;amp; option, const wxString&amp;amp; new_option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ReplaceResourceCompilerOption || const wxString&amp;amp; option, const wxString&amp;amp; new_option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ReplaceIncludeDir || const wxString&amp;amp; option, const wxString&amp;amp; new_option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ReplaceResourceIncludeDir || const wxString&amp;amp; option, const wxString&amp;amp; new_option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ReplaceLibDir || const wxString&amp;amp; option, const wxString&amp;amp; new_option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemoveLinkerOption || const wxString&amp;amp; option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemoveLinkLib || const wxString&amp;amp; lib ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemoveCompilerOption || const wxString&amp;amp; option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemoveIncludeDir || const wxString&amp;amp; option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemoveResourceCompilerOption || const wxString&amp;amp; option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemoveResourceIncludeDir || const wxString&amp;amp; option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemoveLibDir || const wxString&amp;amp; option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemoveCommandsBeforeBuild || const wxString&amp;amp; command ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemoveCommandsAfterBuild || const wxString&amp;amp; command ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || GetAlwaysRunPostBuildSteps ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetAlwaysRunPostBuildSteps || bool always ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetBuildScripts || const wxArrayString&amp;amp; scripts ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || GetBuildScripts || ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AddBuildScript || const wxString&amp;amp; script ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemoveBuildScript || const wxString&amp;amp; script ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SetVar || const wxString&amp;amp; key, const wxString&amp;amp; value, bool onlyIfExists = false ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetVar || const wxString&amp;amp; key ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || UnsetVar || const wxString&amp;amp; key ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || UnsetAllVars || ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== CompileTargetBase ==&lt;br /&gt;
Extends CompileOptionsBase.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetTargetFilenameGenerationPolicy || TargetFilenameGenerationPolicy prefix, TargetFilenameGenerationPolicy extension|| tgfpPlatformDefault -&amp;gt; Generate filename based on running platform defaults.   tgfpNone -&amp;gt; No automatic generation; let the user specify the full filename.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetFilename ||  || The full project name (*.cbp)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetTitle ||  || Target name&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetTitle || wxString title||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetOutputFilename || wxString filename||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetWorkingDir || wxString dirname||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetObjectOutput || wxString dirname||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetDepsOutput || wxString dirname||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| OptionsRelation || GetOptionRelation || OptionsRelationType type||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetOptionRelation || OptionsRelationType type, OptionsRelation rel ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetWorkingDir ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetObjectOutput ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetDepsOutput ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetOutputFilename ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || SuggestOutputFilename ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetExecutableFilename ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetDynamicLibFilename ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetDynamicLibDefFilename ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetStaticLibFilename ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetBasePath ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetTargetType || TargetType pt||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TargetType || GetTargetType ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetExecutionParameters ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetExecutionParameters || wxString params||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetHostApplication ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetHostApplication || wxString app||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetCompilerID || wxString id||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetCompilerID ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetMakeCommandFor || MakeCommand cmd ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetMakeCommandFor || MakeCommand cmd, wxString make ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || MakeCommandsModified ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ProjectBuildTarget ==&lt;br /&gt;
Extends CompileTargetBase.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| cbProject* || GetParentProject ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetFullTitle ||  ||The full title, i.e. &amp;quot;projectname - targetname&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetExternalDeps ||  ||Returns a list of files whose target depends (separated by ';')&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetExternalDeps || wxString deps||Sets the list of files whose target depends (separated by ';')&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetAdditionalOutputFiles || wxString files||Sets the list of additional output files (separated by ';')&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetAdditionalOutputFiles ||  ||Returns a list of additional output files (separated by ';')&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || GetIncludeInTargetAll ||  || Deprecated, do not use at 'All'&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetIncludeInTargetAll || bool || Deprecated, do not use at 'All'&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || GetCreateDefFile ||  || True if the target creates a DEF imports file. (valid for dynamic library targets only)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetCreateDefFile || bool createIt|| Set if the target creates a DEF imports file&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || GetCreateStaticLib ||  || Return true if an import library will be created, false if not (valid for dynamic library targets only)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetCreateStaticLib || bool ||Set if an import library should be created (valid for dynamic library targets only)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || GetUseConsoleRunner ||  || Valid only for targets generating a console executable&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetUseConsoleRunner || bool useIt||Valid only for targets generating a console executable&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ProjectFile* || GetFile || int index|| Returns a file from the target&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || GetFilesCount ||  || Returns number of files for the target&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== cbProject ==&lt;br /&gt;
Extends CompileTargetBase.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || GetModified ||  || Return true if the project is modified in any way&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetModified || bool modified|| Mark the project as modified or not&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetMakefile ||  || Returns file name for the Makefile&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetMakefile || wxString makefile || Set Makefile name when using a custom Makefile to build the project&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || IsMakefileCustom ||  || True if the project is using a custom Makefile for compilation, false if not&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetMakefileCustom || bool custom || Mark if the project should use a custom Makefile for compilation&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || CloseAllFiles || bool dontsave || Close all project files. If dontsave is true no file would be saved even if modified&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SaveAllFiles ||  || Save all project files&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || Save ||  || Save the project&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SaveLayout ||  || Save the project's layout. Layout is the list of open project files, which one is active, where the cursor is located on each one of those, etc&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || LoadLayout ||  || Load the project's layout&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetCommonTopLevelPath ||  || Returns the top-level path common to all project files&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || GetFilesCount ||  || Returns number of files in the project&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ProjectFile* || GetFile || int index || Access a file of the project. Index is between 0 and GetFilesCount()&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ProjectFile* || GetFileByFilename || wxString filename, bool isRelative, bool isUnixFilename || Access a file of the project.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || RemoveFile || ProjectFile *file || Remove a file from the project&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ProjectFile* || AddFile || const wxString &amp;amp;targetName, const wxString &amp;amp;fileaname, bool compile, bool link, int weight || See API docs for cbProject::AddFile&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ProjectFile* || AddFile || int targetIndex, const wxString &amp;amp;fileaname, bool compile, bool link, int weight || See API docs for cbProject::AddFile&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || GetBuildTargetsCount ||  || Returns the number of targets&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ProjectBuildTarget* || GetBuildTarget || int index|| Access a build target by index. Index is from 0 to GetBuildTargetsCount&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ProjectBuildTarget* || GetBuildTarget || const wxString &amp;amp;targetName || Access a build target by name&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ProjectBuildTarget* || AddBuildTarget || cont wxString &amp;amp;targetName || Add a new build target&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || RenameBuildTarget || int index, const wxString &amp;amp;targetName || Rename a build target&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || RenameBuildTarget || const wxString &amp;amp;oldTargetName, const wxString &amp;amp;newTargetName || Rename a build target&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ProjectBuildTarget* || DuplicateBuildTarget || int index, const wxString &amp;amp;newName || Duplicate a build target&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ProjectBuildTarget* || DuplicateBuildTarget || const wxString &amp;amp;targetName, const wxString &amp;amp;newName || Duplicate a build target&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || RemoveBuildTarget || int index || Remove a build target&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || RemoveBuildTarget || const wxString &amp;amp;targetName || Remove a build target&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || ExportTargetAsProject || int index || Export a target as a new project. In other words, save a copy of the project containing only the specified target. The user will be prompted with a dialog to select the new project name.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || ExportTargetAsProject || wxString targetName || Export a target as new project&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || BuildTargetValid || const wxString &amp;amp;name, bool virtualsToo || Is there a build target (virtual or real) by name?&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetFirstValidBuildTargetName || bool virtualsToo || Returns the first valid (virtual or real) build target&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetDefaultExecuteTarget || const wxString &amp;amp;name || Set the build target name which will be pre-selected when the &amp;quot;Select target&amp;quot; dialog appears when running the project&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetDefaultExecuteTarget || || Returns the name of the build target which will be pre-selected when the &amp;quot;Select target&amp;quot; dialog appears when running the project&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SetActiveBuildTarget || const wxString &amp;amp;name || Set the active build target. If name does not exist, then the first virtual target is set or the first real target, depending which is valid.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetActiveBuildTarget || || The active build target name. Note that this might be a virtual target ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || SelectTarget || int initial, bool evenIfOne || Displays a target selection dialog. When invoked, a selection dialog is presented to the user so that he/she can select one target from the list of this project's targets.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PCHMode || GetModeForPCH ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetModeForPCH || PCHMode mode ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetExtendedObjectNamesGeneration || bool ext || Sets object names generation to extended/normal mode. In normal mode (the default), the file foo.cpp generates the foo.o object file. In extended mode, the file foo.cpp generates the foo.cpp.o object file&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || GetExtendedObjectNamesGeneration || || Returns true for extended mode, false for normal mode&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetNotes || const wxString &amp;amp;notes || Set notes on the project&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString  || GetNotes || || Returns the notes on the project&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetShowNotesOnLoad || bool show || Set if to show project notes on load automatically&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool ||  GetShowNotesOnLoad || || Returns true if project notes would be shown automatically during load&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ShowNotes || bool nonEmptyOnly, bool editable || Show project notes now&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AddToExtensions || wxString || Deprecated since rev 11857&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || ExtensionListNodes || const wxString &amp;amp;extension || Returns a list of child nodes to the given extension node. The elements of the list could be passed as extension parameters to all the Extension* methods. Available since rev 11857&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || ExtensionListNodeAttributes || const wxString &amp;amp;extension || Returns a list of with the names of the attributes on the given extension node. Available since rev 11857&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || ExtensionGetNodeAttribute || const wxString &amp;amp;extension, const wxString &amp;amp;attributeName || Returns the value of the given attribute on the given extension node. If the attribute is not found it will return an empty string. Available since rev 11857&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ExtensionSetNodeAttribute || const wxString &amp;amp;extension, const wxString &amp;amp;attributeName, const wxString &amp;amp;attributeValue || Set the value of the given attribute on the given extension node. Available since rev 11857&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ExtensionRemoveNodeAttribute || const wxString &amp;amp;extension, const wxString &amp;amp;attributeName || Remove the given attribute on the given extension node. Available since rev 11857&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || ExtensionAddNode || const wxString &amp;amp;extension, const wxString &amp;amp;nodeName || Add a child node to the given extension node. Return the extension string for the new node. Available since rev 11857&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ExtensionRemoveNode || const wxString &amp;amp;extension || Remove the given extension node. Available since rev 11857&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || DefineVirtualBuildTarget || const wxString &amp;amp;alias, const wxArrayString &amp;amp;targets || Define a new virtual build target. A virtual build target is not really a build target itself but it is an alias for a group of other build targets, real or virtual&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || HasVirtualBuildTarget|| const wxSring &amp;amp;alias || Does a virtual build target exist?&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || RemoveVirtualBuildTarget|| const wxString &amp;amp;alias || Remove a virtual build target. Return true if removed&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || GetVirtualBuildTargets|| ||Get a list of all defined virtual build targets.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || GetVirtualBuildTargetGroup || const wxString &amp;amp;alias || Access a virtual build target's group of build targets. Returns the list of all build targets under the alias&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || GetExpandedVirtualBuildTargetGroup|| const wxString &amp;amp;alias || Access a virtual build target's expanded group of build targets. The difference from GetVirtualBuildTargetGroup() lies in that this function returns the full list of real build targets in this group (by recursively expanding virtual build targets in the group)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || CanAddToVirtualBuildTarget || const wxSring &amp;amp;alias, const wxString &amp;amp;target || Checks if a build target (virtual or real) can be added to a virtual build target, without causing a circular-reference.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetTitle || const wxString &amp;amp;title || Changes project title. This method overrides CompileTargetBase::SetTitle. It sends additional notification event to plugins and than calls base method.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
NOTE: Extension* methods take an extension parameter. This could be used to describe a way to access nodes in the extension xml element in the project file. The extension could be a path separated by '/' characters where every element of the path could be a node name, node name followed by an index or node name followed by attribute match.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| _T(&amp;quot;debugger&amp;quot;) || Finds the first debugger node&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| _T(&amp;quot;debugger/remote_debugging&amp;quot;) || Finds the first child named 'remote_debugging' of the first 'debugger' node&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| _T(&amp;quot;debugger/remote_debugging[1]&amp;quot;) || Finds the second child named 'remote_debugging' of the first 'debugger' node&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| _T(&amp;quot;debugger/remote_debugging(target=Debug)&amp;quot;) || Finds the first child named 'remote_debugging' which has an attribute named target and which has a value 'Debug'&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== EditorBase ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetFilename ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetFilename || wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetShortName ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || GetModified ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetModified || bool ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetTitle ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetTitle || wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Activate ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || Close ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || Save ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || IsBuiltinEditor ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || ThereAreOthers ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || GotoLine || int,bool ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ToggleBreakpoint || int,bool ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || HasBreakpoint || int ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || GotoNextBreakpoint ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || GotoPreviousBreakpoint ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ToggleBookmark || int,bool ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || HasBookmark || int ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || GotoNextBookmark ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || GotoPreviousBookmark ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Undo ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Redo ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Cut ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Copy ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Paste ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || CanUndo ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || CanRedo ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || CanPaste ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || HasSelection ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== cbEditor ==&lt;br /&gt;
Extends EditorBase.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetEditorTitle || wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ProjectFile* || GetProjectFile ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || Save ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SaveAs ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || FoldAll ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || UnfoldAll ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ToggleAllFolds ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || FoldBlockFromLine || int ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || UnfoldBlockFromLine || int ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ToggleFoldBlockFromLine || int ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || GetLineIndentInSpaces || int ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetLineIndentString || int ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Touch ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || Reload || bool ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Print || bool,PrintColourMode,bool ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AutoComplete ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || AddBreakpoint || int,bool ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || RemoveBreakpoint || int,bool ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetText || wxString || this is not present in cbEditor; included to help scripts edit text&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetText ||  || this is not present in cbEditor; included to help scripts edit text&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== TiXML Binding==&lt;br /&gt;
This describes the squirrel interface to read XML files. The base is the TinyXML library and for detailed function description, please refere to the official [https://www.grinninglizard.com/tinyxmldocs/index.html TinyXML documentation]. If a function from this section takes string as Argument it can take wxString or squirrel native strings. If a function returns a string it returns squirrel native strings.&lt;br /&gt;
&lt;br /&gt;
Argument annotation: if multiple types are accepted they are separated with | . For example if a function takes an empty, string or int parameter for the first argument and a string for the second this is described as &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
(void | string | int, string)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TiXMLPrinter ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remark&lt;br /&gt;
|-&lt;br /&gt;
|string&lt;br /&gt;
|CStr&lt;br /&gt;
|&lt;br /&gt;
|Return the XML as string&lt;br /&gt;
|-&lt;br /&gt;
|void&lt;br /&gt;
|SetIndent&lt;br /&gt;
|string&lt;br /&gt;
|Set indentation string&lt;br /&gt;
|-&lt;br /&gt;
|void&lt;br /&gt;
|SetLineBreak&lt;br /&gt;
|string&lt;br /&gt;
| Set line break type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===TiXMLNode===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
! Remark&lt;br /&gt;
|-&lt;br /&gt;
|string&lt;br /&gt;
|Value&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|void&lt;br /&gt;
|SetValue&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===TiXmlDocument ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remark&lt;br /&gt;
|-&lt;br /&gt;
|TiXmlDocument&lt;br /&gt;
|constructor&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;void | string&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bool&lt;br /&gt;
|SaveFile&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bool&lt;br /&gt;
|SaveFile&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bool&lt;br /&gt;
|LoadFile&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;void | string&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|string&lt;br /&gt;
|Parse&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TiXmlElement&lt;br /&gt;
| RootElement&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bool&lt;br /&gt;
|Error&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|string&lt;br /&gt;
|ErrorDesc&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bool&lt;br /&gt;
|Accept&lt;br /&gt;
|TiXMLPringer&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TiXmlElement===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remark&lt;br /&gt;
|-&lt;br /&gt;
|TiXmlElement&lt;br /&gt;
|constructor&lt;br /&gt;
|string, TiXmlElement&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|string&lt;br /&gt;
|Attribute&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TiXMLAttribute&lt;br /&gt;
|GetAttribute&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TiXMLAttribute&lt;br /&gt;
| FirstAttribute&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| TiXMLAttribute&lt;br /&gt;
| LastAttribute&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|void&lt;br /&gt;
|RemoveAttribute&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|void&lt;br /&gt;
|SetAttribute&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;(string, string | int | float)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TiXmlElement&lt;br /&gt;
|FirstChildElement&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;(void | string)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| TiXMLNode&lt;br /&gt;
|LastChild&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;(void | string)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TiXmlElement&lt;br /&gt;
|LastChildElement&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;(void | string)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TiXmlElement&lt;br /&gt;
|NextSiblingElement&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;(void | string)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| TiXMLNode&lt;br /&gt;
|PreviousSibling&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;(void | string)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|string&lt;br /&gt;
|GetText&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===TiXmlAttribute ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remark&lt;br /&gt;
|-&lt;br /&gt;
|TiXmlAttribute&lt;br /&gt;
|constructor&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;(void) | (string, string)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|string&lt;br /&gt;
| Value&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|string&lt;br /&gt;
|Name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|int&lt;br /&gt;
|IntValue&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|float&lt;br /&gt;
|DoubleValue&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| TiXmlAttribute&lt;br /&gt;
|Next&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|void&lt;br /&gt;
|SetValue&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|void&lt;br /&gt;
|SetName&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===TiXmlHandle===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remark&lt;br /&gt;
|-&lt;br /&gt;
|TiXmlHandle&lt;br /&gt;
|constructor&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;TiXmlNode | TiXmlHandle&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TiXmlHandle&lt;br /&gt;
|FirstChild&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;void | string&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TiXmlHandle&lt;br /&gt;
|FirstChildElement&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;void | string&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TiXmlNode &lt;br /&gt;
|ToNode&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TiXmlElement&lt;br /&gt;
|ToElement&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TiXmlNode &lt;br /&gt;
|Node&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TiXmlElement&lt;br /&gt;
|Element&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Constants==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Constant&lt;br /&gt;
!Type&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PLATFORM||int||this defines the platform Code::Blocks is currently running on. It is equal to only one of the following PLATFORM_* constants&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PLATFORM_MSW||int||All Windows platforms&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PLATFORM_GTK||int||All GTK platforms (Linux, BSD, Solaris, Darwin, etc.)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|PLATFORM_MAC||int||All Mac platforms&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|PLATFORM_OS2||int||OS/2 platform&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|PLATFORM_X11||int||All X11 platforms&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|PLATFORM_UNKNOWN||int||Unknown platform. Please inform us if PLATFORM == PLATFORM_UNKNOWN so we can make this platform known too ;)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''Plugin version'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|PLUGIN_SDK_VERSION_MAJOR||int||=1, it will change when the SDK interface breaks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|PLUGIN_SDK_VERSION_MINOR||int||=13, it will change when the SDK interface breaks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|PLUGIN_SDK_VERSION_RELEASE||int||=13, it will change when the SDK interface breaks&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Script binding version&lt;br /&gt;
|-&lt;br /&gt;
|SCRIPTING_VERSION_MAJOR||int||=2, it will change when the script binding interface breaks (for ex. bindings removed, api breaks, function type changed)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|SCRIPTING_VERSION_MINOR||int||=0, it will change when the script binding interface breaks (for ex. new bindings introduced)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|SCRIPTING_VERSION_RELEASE|| int||=0, it will change when the script binding interface breaks (bug fixes)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''Path separator for filenames'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxFILE_SEP_PATH||wxString||Path separator. &amp;quot;\&amp;quot; for windows, &amp;quot;/&amp;quot; for all other platforms&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''Message dialog flags'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxOK||int|| Flag for Message() 's third argument (flags).&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxYES_NO||int|| -&amp;quot;-&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxCANCEL||int||-&amp;quot;-&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxICON_QUESTION|| int||-&amp;quot;-&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxICON_INFORMATION||int||-&amp;quot;-&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxICON_WARNING||int||-&amp;quot;-&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxICON_ERROR||int||-&amp;quot;-&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''Message dialog return values'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxID_OK|| int||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxID_YES ||int||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxID_NO||int||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxID_CANCEL||int||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''enum wxPathFormat'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxPATH_NATIVE||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxPATH_UNIX||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxPATH_BEOS||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxPATH_MAC||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|wxPATH_DOS||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxPATH_WIN|| enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxPATH_OS2||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxPATH_VM3 ||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''For wxFileName::GetPath()'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxPATH_GET_VOLUME||enum||include the volume if applicable&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxPATH_GET_SEPARATOR||enum||terminate the path with the separator&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''enum wxPathNormalize'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxPATH_NORM_ENV_VARS||enum||replace env vars with their values&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxPATH_NORM_DOTS||enum||squeeze all .. and . and prepend cwd&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxPATH_NORM_TILDE||enum||Unix only: replace ~ and ~user&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxPATH_NORM_CASE||enum||if case insensitive =&amp;gt; tolower&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxPATH_NORM_ABSOLUTE || enum||make the path absolute&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxPATH_NORM_LONG||enum||make the path the long form&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxPATH_NORM_SHORTCUT ||enum||resolve the shortcut, if it is a shortcut&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxPATH_NORM_ALL|| enum||= 0x00ff &amp;amp; ~wxPATH_NORM_CASE&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''enum OptionsRelationType'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ortCompilerOptions|| enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ortLinkerOptions||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ortIncludeDirs||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ortLibDirs||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ortResDirs||enum ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''enum OptionsRelation'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|orUseParentOptionsOnly|| enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|orUseTargetOptionsOnly||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|orPrependToParentOptions||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|orAppendToParentOptions||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''enum TargetType'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ttExecutable||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ttConsoleOnly||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ttStaticLib||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ttDynamicLib||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ttCommandsOnly||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''enum MakeCommand'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|mcClean||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|mcDistClean||enum ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|mcBuild|| enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|mcCompileFile||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|mcAskRebuildNeeded||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|mcSilentBuild||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''enum PCHMode'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|pchSourceDir||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|pchObjectDir||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|pchSourceFile||enum ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''enum PrintScope'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|psSelection||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|psActiveEditor||enum ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|psAllOpenEditors||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''enum PrintColourMode'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|pcmBlackAndWhite||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| pcmColourOnWhite||enum ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|pcmInvertColours||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|pcmAsIs||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''enum TemplateOutputType'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wizProject||enum||TemplateOutputType::totProject&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wizTarget || enum||TemplateOutputType::totTarget&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wizFiles ||enum||TemplateOutputType::totFiles&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wizCustom||enum|| TemplateOutputType::totCustom&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''enum SearchDirs'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|sdHome||enum||User's home directory&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| sdBase||enum||Code::Blocks' installation base&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|sdTemp||enum||System-wide temp folder&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|sdPath||enum||All dirs in the PATH environment variable&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|sdConfig||enum|| Config folder&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|sdCurrent||enum||Current working folder&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|sdPluginsUser||enum || Plugins folder in user's dir&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|sdScriptsUser||enum||Scripts folder in user's dir&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|sdDataUser||enum||Data folder in user's dir&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|sdAllUser||enum|| Convenience value meaning &amp;quot;all sd*User values&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|sdPluginsGlobal||enum||Plugins folder in base dir&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|sdScriptsGlobal||enum||Scripts folder in base dir&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|sdDataGlobal||enum||Data folder in base dir&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|sdAllGlobal||enum||Convenience value meaning &amp;quot;all sd*Global values&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|sdAllKnown||enum||All known dirs (i.e. all of the above)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''SupportedPlatforms'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|spMac||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|spUnix ||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|spWindows||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|spAll||enum||&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''TargetFilenameGenerationPolicy'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|tgfpPlatformDefault||enum||Generate filename based on running platform defaults.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|tgfpNone ||enum||No automatic generation; let the user specify the full filename&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''ModuleType'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|mtProjectManager ||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|mtEditorManager||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|mtLogManager||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|mtOpenFilesList||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|mtEditorTab||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|mtUnknown||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''FileTreeDataKind'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ftdkUndefined||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ftdkProject||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ftdkFolder||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ftdkFile||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ftdkVirtualGroup||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ftdkVirtualFolder||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''File extensions (e.g. &amp;quot;cbp&amp;quot;)'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_WORKSPACE||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_CODEBLOCKS||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_DEVCPP||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_MSVC6||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_MSVC7||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_MSVC10||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EXT_MSVC6_WORKSPACE||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_MSVC7_WORKSPACE || wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EXT_ASM||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EXT_D||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_F||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_F77||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_F90||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_F95||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_FOR||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_FPP||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_F03||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_F08||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_JAVA||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_C||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_CC||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_CPP||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_CXX||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_CPLPL||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_INL||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_H||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_HH||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_HPP||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_HXX||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_HPLPL||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_S||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_SS||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_S62||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_OBJECT||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_XRCRESOURCE||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_STATICLIB||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_DYNAMICLIB||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_EXECUTABLE||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_NATIVE||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_RESOURCE||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_RESOURCEBIN||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_XML||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_SCRIPT||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''File extensions with leading dot (e.g. &amp;quot;.cbp&amp;quot;)'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_WORKSPACE||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_CODEBLOCKS||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_DEVCPP||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_MSVC6||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_MSVC7||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_MSVC10||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_MSVC7_WORKSPACE||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_MSVC6_WORKSPACE||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_D||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_F||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_F77||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_F90||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_F95||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_FOR||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_FPP||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_F03||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_F08||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_JAVA||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_C||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_CC||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_CPP||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_CXX||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_HPP||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_CPLPL||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_H||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_HH||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_HPP||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_HXX||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_HPLPL||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_S||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_SS||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_S62||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_OBJECT||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_XRCRESOURCE||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_STATICLIB||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_DYNAMICLIB||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_EXECUTABLE||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_NATIVE||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_RESOURCE||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_RESOURCEBIN||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_XML||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_SCRIPT||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Plugins with script bindings==&lt;br /&gt;
[[Environment Variables plugin]] Plugin to change environment variables&lt;br /&gt;
&lt;br /&gt;
==Script example collection==&lt;br /&gt;
[[Some examples]]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Scripting Code::Blocks|Scripting index]]&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Scripting_commands&amp;diff=9595</id>
		<title>Scripting commands</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Scripting_commands&amp;diff=9595"/>
		<updated>2022-04-15T15:28:03Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: Add binding information for TiXML binding&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scripting Code::Blocks]]&lt;br /&gt;
Scripting is no good if all you can do is use the scripting language's built-in commands only. The host application (Code::Blocks) needs to expose parts of its internals to scripts, so scripts can use and control the host.&lt;br /&gt;
&lt;br /&gt;
Code::Blocks has exposed a very large chunk of its SDK to scripts. This makes scripting in Code::Blocks nearly as powerful as native code (C++).&lt;br /&gt;
&lt;br /&gt;
In this page all the exported constants, functions and classes are documented as a quick reference. For detailed documentation on each function/class, refer to the Code::Blocks SDK documentation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''NOTE: Please remember that [http://www.squirrel-lang.org Squirrel] is typeless. Data types mentioned below are only used for documentation purposes.''&lt;br /&gt;
&lt;br /&gt;
''NOTE: Please keep in mind that if a function has default parameters in C++ (which can be ommitted), you still have to type them for scripts (for e.g. exposed wxWidgets functionality). This means you *have* to use e.g. wxFileName.GetFullPath(wxPATH_NATIVE) instead of e.g only wxFileName.GetFullPath().&lt;br /&gt;
&lt;br /&gt;
''NOTE: Updated to '''12.11'''&lt;br /&gt;
&lt;br /&gt;
== Application object ==&lt;br /&gt;
The application object is accessed through the variable named '''&amp;lt;tt&amp;gt;App&amp;lt;/tt&amp;gt;'''. Currently it has no bound functions...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Global functions ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Log || wxString || logs to the application log&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || LogDebug || wxString || logs to the debug log&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || LogWarning || wxString || logs a warning&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || LogError || wxString || logs an error&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || Message || wxString,wxString,int || arg1=msg, arg2=caption, arg3=buttons; see API docs for cbMessageBox()&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ShowMessage || wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ShowWarning || wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ShowError || wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ShowInfo || wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || ReplaceMacros || wxString || Does [[Variable_expansion|variable expansion]] on the input wxString&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ScriptingManager* || GetScriptingManager ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ProjectManager* || GetProjectManager ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EditorManager* || GetEditorManager ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ConfigManager* || GetConfigManager ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| UserVariableManager* || GetUserVariableManager || ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| CompilerFactory* || GetCompilerFactory ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || GetArrayFromString ||  wxString,wxString,bool ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetStringFromArray ||  wxArrayString,wxString,bool ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || EscapeSpaces ||  wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || UnixFilename || wxString, int || arg1=filename, arg2=wxPATH_NATIVE, wxPATH_WIN, ...&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| FileType || FileTypeOf || wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || URLEncode || wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || NotifyMissingFile || wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || GetPlatformsFromString || wxString  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString  || GetStringFromPlatforms || int,bool||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void|| InfoWindow || wxString,wxString,int,int ||  pop-up box in the lower right, see infowindow.h&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetFolder || int || see API docs for ConfigManager::GetFolder()&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || LocateDataFile|| wxString, int || see API docs for ConfigManager::LocateDataFile()&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || InstallPlugin || wxString,bool, bool || Install a binary plugin&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || ExecuteToolPlugin || wxString || Execute a tool plugin (found in Plugins menu)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || ConfigureToolPlugin || wxString || Configure a tool plugin (found in Plugins menu)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || CallMenu || wxString || Call a menu entry describing its path using slashes (e.g. &amp;quot;/Valgrind/Run Valgrind::MemCheck&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Include || wxString || similar to C/C++ ''&amp;lt;tt&amp;gt;#include &amp;quot;name&amp;quot;&amp;lt;/tt&amp;gt;''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || Require || wxString ||arg=script_filename, return 0 if ok&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || IsNull || void* ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || wxLaunchDefaultBrowser || wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxColour || wxGetColourFromUser || [wxColour] ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| long || wxGetNumberFromUser || wxString,wxString,wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || wxGetPasswordFromUser || wxString,wxString,wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || wxGetTextFromUser || wxString,wxString,wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| long || wxString_ToLong || wxString const ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ScriptingManager ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || RegisterScriptMenu || wxString, wxString || registers the script file (arg1) under a menu item (arg2).&lt;br /&gt;
e.g. &amp;lt;tt&amp;gt;GetScriptingManager().RegisterScriptMenu(_T(&amp;quot;sample.script&amp;quot;), _T(&amp;quot;Scripts/Sample script&amp;quot;))&amp;lt;/tt&amp;gt;;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Notes about the &amp;lt;tt&amp;gt;RegisterScriptMenu&amp;lt;/tt&amp;gt; function:&amp;lt;br/&amp;gt;&lt;br /&gt;
* The second argument (menu item) is a string containing the full menu path to create the menu item. The path separator is a slash (/). For example, the string &amp;quot;Settings/Sample menu/Sample item&amp;quot; would create the menu path &amp;quot;Settings-&amp;gt;Sample menu-&amp;gt;Sample item&amp;quot;.&lt;br /&gt;
* When each part of the path is evaluated, it is checked whether it starts with a number followed by a colon (:). If so then this is considered to be a menu index in the parent menu and the menu is inserted at that index instead of being appended to the menu. The number and colon are removed from the string.&lt;br /&gt;
* If the menu item starts with a dash (-), then a separator line is prepended in the menu before the menu item (e.g. &amp;quot;Scripts/'''-'''Sample script&amp;quot;).&lt;br /&gt;
* For your convenience, all menu items created using this function have one extra functionality: if you keep the SHIFT key pressed while clicking on any of these &amp;quot;script menu items&amp;quot;, instead of running the attached script, Code::Blocks will open it in the editor for you to view/edit :).&lt;br /&gt;
* Have a look at the [[Startup script#Example|startup script example]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ConfigManager ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || Read || const wxString, int || arg1=key, arg2=default_val&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || Read || const wxString, bool ||  arg1=key, arg2=default_val&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| float || Read || const wxString, float ||  arg1=key, arg2=default_val&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || Read || const wxString, const wxString || arg1=key, arg2=default_val&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Write || const wxString, int || arg1=key, arg2=value&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Write || const wxString, bool || arg1=key, arg2=value&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Write || const wxString, float || arg1=key, arg2=value&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Write || const wxString, const wxString, bool ||arg1=key, arg2=value, arg3=ignore_value_empty&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ProjectManager ==&lt;br /&gt;
see API docs for 'ProjectManager::...' in 'include\projectmanager.h'&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments in Prototype&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetDefaultPath || ( ) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetDefaultPath || (const wxString&amp;amp; path) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| cbProject* || GetActiveProject || ( ) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || GetProjectCount || ( ) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| cbProject* || GetProject || (int) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetProject || (cbProject* project, bool refresh = true) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || LoadWorkspace || (const wxString&amp;amp; filename = DEFAULT_WORKSPACE)|| &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SaveWorkspace || ( )  || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SaveWorkspaceAs || (const wxString&amp;amp; filename) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || CloseWorkspace || ( ) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| cbProject* || IsOpen || (const wxString&amp;amp; filename) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| cbProject* || LoadProject || (const wxString&amp;amp; filename, bool activateIt = true) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SaveProject || (cbProject* project) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SaveProjectAs || (cbProject* project) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SaveActiveProject || ( ) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SaveActiveProjectAs || ( ) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SaveAllProjects || ( ) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || CloseProject || (cbProject* project, bool dontsave = false, bool refresh = true) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || CloseActiveProject || (bool dontsave = false) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || CloseAllProjects || (bool dontsave = false) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| cbProject* || NewProject || (const wxString&amp;amp; filename = wxEmptyString) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || AddFileToProject || (const wxString&amp;amp; filename, cbProject* project = 0L, int target = -1) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || AskForBuildTargetIndex || (cbProject* project = 0L) || &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RebuildTree || ( ) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || AddProjectDependency || (cbProject* base, cbProject* dependsOn) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemoveProjectDependency || (cbProject* base, cbProject* doesNotDependOn) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ClearProjectDependencies || (cbProject* base) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemoveProjectFromAllDependencies || (cbProject* base) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ProjectsArray* || GetDependenciesForProject || (cbProject* base) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ConfigureProjectDependencies || (cbProject* base = 0) || &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== EditorManager ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments in Prototype&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Configure || ( ) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| cbEditor* || New || (const wxString&amp;amp; newFileName = wxEmptyString) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| cbEditor* || Open || (const wxString&amp;amp; filename) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| cbEditor* || IsBuiltinOpen || (const wxString&amp;amp; filename) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| cbEditor* || GetBuiltinEditor || (const wxString&amp;amp; filename)|(int index) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| cbEditor* || GetBuiltinActiveEditor || ( ) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EditorBase* || GetActiveEditor || ( ) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ActivateNext || ( ) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ActivatePrevious || ( ) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SwapActiveHeaderSource || ( ) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || CloseActive || (bool dontsave = false) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || Close || (const wxString&amp;amp; filename,bool dontsave = false)|(int index,bool dontsave = false),(EditorBase* editor,bool dontsave = false) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || CloseAll || (bool dontsave=false) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || Save || (const wxString&amp;amp; filename)|(int index)||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SaveActive || ( ) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SaveAs || (int index) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SaveActiveAs || ( ) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SaveAll || ( ) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || ShowFindDialog || (bool replace,  bool explicitly_find_in_files = false) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== UserVariableManager ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments in Prototype&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || Exists || (const wxString&amp;amp; variable) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== IO namespace ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments in Prototype&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || DirectoryExists || (const wxString&amp;amp; dir) || '''1)'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || SelectDirectory || (const wxString&amp;amp; message, const wxString&amp;amp; initialPath, bool showCreateDirButton) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || '''CreateDirectory''' || (const wxString&amp;amp; full_path, int perms) || arg1=dir, arg2=permissions '''1)'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || '''RemoveDirectory''' || (const wxString&amp;amp; src) || '''1)'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || '''CopyFile''' ||(const wxString&amp;amp; src, const wxString&amp;amp; dst, bool overwrite) || '''1)'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || '''RenameFile''' || (const wxString&amp;amp; src, const wxString&amp;amp; dst) || old,new  '''1)'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || '''RemoveFile''' || (const wxString&amp;amp; src) || '''1)'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || FileExists || (const wxString&amp;amp; file) || '''1)'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || SelectFile || (const wxString&amp;amp; title, const wxString&amp;amp; defaultFile, const wxString&amp;amp; filter) || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || ReadFileContents || (const wxString&amp;amp; filename) ||  '''1)'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || '''WriteFileContents''' || (const wxString&amp;amp; filename, const wxString&amp;amp; contents) || filename,contents '''1)'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || '''Execute''' || (const wxString&amp;amp; command) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || '''ExecuteAndGetOutput''' || (const wxString&amp;amp; command) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || '''ExecuteAndGetOutputAndError''' || (const wxString&amp;amp; command, bool prepend_error) ||if 'prepend_error' is true gives an error string&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetCwd || ( )  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetCwd || (const wxString&amp;amp; dir) || directory (currently working directory)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Notes:'''&lt;br /&gt;
The namespaces are accesses by prepending it's name (e.g. &amp;quot;IO.&amp;quot;) to the scripting function, e.g. &amp;quot;IO.DirectoryExists(...)&amp;quot;. &amp;quot;::&amp;quot; is only used when declaring the members of the namespace.&lt;br /&gt;
The functions in bold are going through the scripts security layer so there is no guarantee calling them will succeed. You should always examine the return value...&lt;br /&gt;
There exists one constant too, named ''allowInsecureScripts'', which allow you to test whether Code::Blocks was compiled with the functions going through the security layer.&lt;br /&gt;
&lt;br /&gt;
'''NOTE: 1)''' All paths/filenames are expanded via the ReplaceMacros function prior the function is called. So it is possible to copy the project output file with&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
IO.CopyFile(_T(&amp;quot;$(TARGET_OUTPUT_FILE)&amp;quot;),_T(&amp;quot;output_directory/output_file&amp;quot;),true);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CompilerFactory ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments in Prototype&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || IsValidCompilerID || (const wxString&amp;amp; id) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || GetCompilerIndex || (const wxString&amp;amp; id) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetDefaultCompilerID || ( )  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetCompilerVersionString ||  (const wxString&amp;amp; Id) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || CompilerInheritsFrom || ( ) ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetCompilerIDByName || (const wxString &amp;amp;name ) || Makes it possible to find the compiler id by its name. Available since rev 9823.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== wxString ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || _T || const char* || basically this is the wxString constructor&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || _ || const char* || the same as _T, but should be used for translatable strings&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || operator= || const wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || operator+ || const wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || operator+ || const int ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || operator+= || const wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || operator+= || const int ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || operator&amp;lt; || const wxString || _T(&amp;quot;abc&amp;quot;) &amp;lt;  _T(&amp;quot;cba&amp;quot;) -&amp;gt; true&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || operator&amp;lt;= || const wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || operator&amp;gt;= || const wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || operator&amp;gt; || const wxString  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || Find || wxString || -1 if not found&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || Matches || wxString || not use '==' !!, returns true if the string contents matches a mask containing '*' and '?'&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AddChar || char ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| char || GetChar || int || arg1=position&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || IsEmpty ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || Length ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || length ||  || same as Length()&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || len ||  || same as Length()&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || size ||  || same as Length()&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || Lower ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || LowerCase ||  || same as Lower()&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || MakeLower ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || Upper ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || UpperCase ||  || same as Upper()&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || MakeUpper ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || Mid || int, int || arg1=position, arg2=long&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || Remove || int, int || arg1=position, arg2=long&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemoveLast || int  || remove the last characters&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || Replace || wxString, wxString,bool || arg3=true -&amp;gt; all occurrences else the first&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || Right || int x || return the x last characters&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || AfterFirst || char || not found -&amp;gt; _T(&amp;quot;&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || AfterLast || char || not found -&amp;gt; all the character string&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || BeforeFirst || char || not found -&amp;gt; all the character string&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || BeforeLast || char || not found -&amp;gt; _T(&amp;quot;&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
''NOTE: Is instantiated in a script using: local my_wxstring = ::wxString();&lt;br /&gt;
&lt;br /&gt;
== wxArrayString ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Add || wxString, size_t || arg1=string, arg2=number of copies to add&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Clear ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || GetCount ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || Index || wxString || -1 If not found&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || Item || int || not work with wx 2.9.x ?!&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
''NOTE: Is instantiated in a script using: local my_wxarraystring = ::wxArrayString();&lt;br /&gt;
&lt;br /&gt;
== wxColour ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| byte || Red || ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| byte || Green || ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| byte || Blue || ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || IsOk || || ONLY if (wxVERSION_NUMBER &amp;lt; 2900)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Set || byte, byte, byte, byte || red, green, blue, alpha : into [0..255]&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
''NOTE: Is instantiated in a script using: local my_wxcolour = ::wxColour();&lt;br /&gt;
&lt;br /&gt;
''EXAMPLE: local my_wxcolour = ::wxColour(); my_wxcolour.Set(0xFF, 0x00, 0x00, 0x55); ::print(my_wxcolour) -&amp;gt; [r=255, g=0, b=0]&lt;br /&gt;
&lt;br /&gt;
== wxFileName == &lt;br /&gt;
'''UNDER VERIFICATION'''&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remarks &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Assign || const wxFileName || creates the file name from an other wxFileName&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Assign || const wxString, wxPathFormat || arg1=full_path, arg2=wformat=xPATH_NATIVE ...&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AssignCwd || const wxString || arg1=volume&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AssignDir|| const wxString, wxPathFormat || arg1=name_dir, arg2=format=wxPATH_NATIVE ... &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AssignHomeDir ||  || sets this file name object to the home directory&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Clear ||  || reset all components to default, uninitialized state&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ClearExt ||  || removes the extension from the file name resulting in a file name with no trailing dot&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || GetDirCount ||  || returns the number of directories in the file name.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || GetDirs ||  || returns the directories in string array form&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetExt ||  || returns the file name extension.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetFullName ||  || returns the full name (including extension but excluding directories).&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetFullPath || wxPathFormat || arg=format=wxPATH_NATIVE ...&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetLongPath ||  || return the long form of the path (returns identity on non-Windows platforms)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetName ||  || returns the name part of the filename (without extension)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetPath || int, wxPathFormat || arg1=flags=wxPATH_GET_VOLUME..., arg2=format=wxPATH_NATIVE ...&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetShortPath ||  || return the short form of the path (returns identity on non-Windows platforms).&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetVolume ||  || returns the string containing the volume for this file name&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || HasExt ||  || returns true if an extension is present.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || HasName ||  || returns true if a name is present&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || HasVolume ||  || returns true if a volume specifier is present&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || InsertDir||int, const wxString || arg1=before_dir, arg2=name_dir&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || IsAbsolute || wxPathFormat ||arg=format=wxPATH_NATIVE...&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || IsOk ||  || returns true if the filename is valid&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || IsRelative || wxPathFormat ||arg=format=wxPATH_NATIVE...&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || IsDir ||  || returns true if this object represents a directory&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || MakeAbsolute ||const wxString, wxPathFormat|| arg1=cwd=_T(&amp;quot;&amp;quot;) or ..., arg2=format=wxPATH_NATIVE or ...&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || MakeRelativeTo ||const wxString, wxPathFormat|| arg1=path_base, arg2=format=wxPATH_NATIVE or ...&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || Normalize ||int, const wxString, wxPathFormat||arg1=flags=wxPATH_NORM_ALL, arg2=cwd=_T(&amp;quot;&amp;quot;),arg3=format=wxPATH_NATIVE or ...&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || PrependDir || const wxString ||arg=dir &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemoveDir || int ||arg=pos RemoveLastDir&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemoveLastDir || || removes last directory component from the path&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SameAs || const wxFileName, wxPathFormat || arg1=filepath, arg2=format=wxPATH_NATIVE&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SetCwd||  || changes the current working directory&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetExt ||const wxString ||arg=extension&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetEmptyExt ||  || sets the extension of the file name to be an empty extension&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetFullName || wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetName || wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetVolume || wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
''NOTE: Is instantiated in a script using: local my_filename = ::wxFileName()&lt;br /&gt;
&lt;br /&gt;
== wxPoint ==&lt;br /&gt;
'''UNDER CONSTRUCTION'''&lt;br /&gt;
&lt;br /&gt;
'' Instantiate integer points 2D&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remarks&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxPoint || operator= || const wxPoint|| default assignment operator is ok&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || operator== ||const wxPoint||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || operator!= || const wxPoint||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || x || ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || y || ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
''NOTE: Is instantiated in a script using: local my_wxpoint = ::wxPoint();&lt;br /&gt;
&lt;br /&gt;
''EXAMPLE: local my_wxpoint = ::wxPoint(); my_wxpoint.x = 5;  my_wxpoint.y = 12; // not use ::print(my_wxpoint)&lt;br /&gt;
&lt;br /&gt;
== wxSize ==&lt;br /&gt;
'''UNDER CONSTRUCTION'''&lt;br /&gt;
&lt;br /&gt;
'' Instantiate integers values (X, Y) &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remarks&lt;br /&gt;
|- &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxSize || operator= || const wwSize|| default assignment operator is ok&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || operator== ||const wxSize||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || operator!= || const wxSize||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || GetWidth || || return X&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || GetHeight || || return Y&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetWidth || int w|| X=w&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetHeight || int h|| Y=h&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Set || int w, int h|| X=w, Y=h&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
''NOTE: Is instantiated in a script using: local my_wxsize = ::wxSize();&lt;br /&gt;
&lt;br /&gt;
''EXAMPLE: local my_wxsize = ::wxSize(); my_wxsize.SetWidth(5);  my_wxsize.SetHeight(12); // not use ::print(my_wxsize)&lt;br /&gt;
&lt;br /&gt;
== ProjectFile ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments in Prototype&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AddBuildTarget || const wxString&amp;amp; targetName || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RenameBuildTarget || const wxString&amp;amp; oldTargetName, const wxString&amp;amp; newTargetName || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemoveBuildTarget || const wxString&amp;amp; targetName || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| const wxArrayString&amp;amp; || GetBuildTargets || ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetBaseName || ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetObjName || ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetObjName || const wxString&amp;amp; targetName || &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| cbProject* || GetParentProject || ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString|| GetCustomBuildCommand|| const wxString&amp;amp; compilerId ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void  || SetCustomBuildCommand || const wxString&amp;amp; compilerId, const wxString&amp;amp; newBuildCommand ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || GetUseCustomBuildCommand|| const wxString&amp;amp; compilerId ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void  || SetUseCustomBuildCommand || const wxString&amp;amp; compilerId, bool useCustomBuildCommand ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxFileName || file ||  || (variable)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || relativeFilename ||  || (variable)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || relativeToCommonTopLevelPath ||  || (variable)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || compile ||  || (variable)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || link ||  || (variable)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || weight ||  || (variable)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || compilerVar ||  || (variable)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || buildTargets ||  || (variable)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== CompileOptionsBase ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments in Prototype&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AddPlatform || int platform || windows,unix,mac&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemovePlatform || int platform ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetPlatforms || int platform ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || GetPlatforms || ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SupportsCurrentPlatform || ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetLinkerOptions || const wxArrayString&amp;amp; linkerOpts ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetLinkLibs || const wxArrayString&amp;amp; linkLibs ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetLinkerExecutable || LinkerExecutableOption option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| LinkerExecutableOption || GetLinkerExecutable || ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetCompilerOptions || const wxArrayString&amp;amp; compilerOpts ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetResourceCompilerOptions || const wxArrayString&amp;amp; resourceCompilerOpts ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetIncludeDirs || const wxArrayString&amp;amp; includeDirs ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetResourceIncludeDirs || const wxString&amp;amp; option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetLibDirs || const wxArrayString&amp;amp; libDirs ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetCommandsBeforeBuild || const wxArrayString&amp;amp; commands ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetCommandsAfterBuild || const wxArrayString&amp;amp; commands ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || GetLinkerOptions ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || GetLinkLibs ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || GetCompilerOptions ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || GetResourceCompilerOptions ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || GetIncludeDirs ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || GetResourceIncludeDirs ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || GetLibDirs ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || GetCommandsBeforeBuild ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || GetCommandsAfterBuild ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || GetModified ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetModified || bool modified ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AddLinkerOption || const wxString&amp;amp; option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AddLinkLib || const wxString&amp;amp; lib ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AddCompilerOption || const wxString&amp;amp; option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AddResourceCompilerOption || const wxString&amp;amp; option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AddIncludeDir || const wxString&amp;amp; option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AddResourceIncludeDir || const wxString&amp;amp; option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AddLibDir || const wxString&amp;amp; option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AddCommandsBeforeBuild || const wxString&amp;amp; command ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AddCommandsAfterBuild || const wxString&amp;amp; command ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ReplaceLinkerOption || const wxString&amp;amp; option, const wxString&amp;amp; new_option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ReplaceLinkLib || const wxString&amp;amp; option, const wxString&amp;amp; new_option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ReplaceCompilerOption || const wxString&amp;amp; option, const wxString&amp;amp; new_option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ReplaceResourceCompilerOption || const wxString&amp;amp; option, const wxString&amp;amp; new_option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ReplaceIncludeDir || const wxString&amp;amp; option, const wxString&amp;amp; new_option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ReplaceResourceIncludeDir || const wxString&amp;amp; option, const wxString&amp;amp; new_option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ReplaceLibDir || const wxString&amp;amp; option, const wxString&amp;amp; new_option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemoveLinkerOption || const wxString&amp;amp; option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemoveLinkLib || const wxString&amp;amp; lib ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemoveCompilerOption || const wxString&amp;amp; option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemoveIncludeDir || const wxString&amp;amp; option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemoveResourceCompilerOption || const wxString&amp;amp; option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemoveResourceIncludeDir || const wxString&amp;amp; option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemoveLibDir || const wxString&amp;amp; option ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemoveCommandsBeforeBuild || const wxString&amp;amp; command ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemoveCommandsAfterBuild || const wxString&amp;amp; command ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || GetAlwaysRunPostBuildSteps ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetAlwaysRunPostBuildSteps || bool always ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetBuildScripts || const wxArrayString&amp;amp; scripts ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || GetBuildScripts || ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AddBuildScript || const wxString&amp;amp; script ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || RemoveBuildScript || const wxString&amp;amp; script ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SetVar || const wxString&amp;amp; key, const wxString&amp;amp; value, bool onlyIfExists = false ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetVar || const wxString&amp;amp; key ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || UnsetVar || const wxString&amp;amp; key ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || UnsetAllVars || ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== CompileTargetBase ==&lt;br /&gt;
Extends CompileOptionsBase.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetTargetFilenameGenerationPolicy || TargetFilenameGenerationPolicy prefix, TargetFilenameGenerationPolicy extension|| tgfpPlatformDefault -&amp;gt; Generate filename based on running platform defaults.   tgfpNone -&amp;gt; No automatic generation; let the user specify the full filename.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetFilename ||  || The full project name (*.cbp)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetTitle ||  || Target name&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetTitle || wxString title||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetOutputFilename || wxString filename||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetWorkingDir || wxString dirname||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetObjectOutput || wxString dirname||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetDepsOutput || wxString dirname||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| OptionsRelation || GetOptionRelation || OptionsRelationType type||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetOptionRelation || OptionsRelationType type, OptionsRelation rel ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetWorkingDir ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetObjectOutput ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetDepsOutput ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetOutputFilename ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || SuggestOutputFilename ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetExecutableFilename ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetDynamicLibFilename ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetDynamicLibDefFilename ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetStaticLibFilename ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetBasePath ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetTargetType || TargetType pt||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| TargetType || GetTargetType ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetExecutionParameters ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetExecutionParameters || wxString params||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetHostApplication ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetHostApplication || wxString app||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetCompilerID || wxString id||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetCompilerID ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetMakeCommandFor || MakeCommand cmd ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetMakeCommandFor || MakeCommand cmd, wxString make ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || MakeCommandsModified ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ProjectBuildTarget ==&lt;br /&gt;
Extends CompileTargetBase.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| cbProject* || GetParentProject ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetFullTitle ||  ||The full title, i.e. &amp;quot;projectname - targetname&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetExternalDeps ||  ||Returns a list of files whose target depends (separated by ';')&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetExternalDeps || wxString deps||Sets the list of files whose target depends (separated by ';')&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetAdditionalOutputFiles || wxString files||Sets the list of additional output files (separated by ';')&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetAdditionalOutputFiles ||  ||Returns a list of additional output files (separated by ';')&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || GetIncludeInTargetAll ||  || Deprecated, do not use at 'All'&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetIncludeInTargetAll || bool || Deprecated, do not use at 'All'&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || GetCreateDefFile ||  || True if the target creates a DEF imports file. (valid for dynamic library targets only)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetCreateDefFile || bool createIt|| Set if the target creates a DEF imports file&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || GetCreateStaticLib ||  || Return true if an import library will be created, false if not (valid for dynamic library targets only)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetCreateStaticLib || bool ||Set if an import library should be created (valid for dynamic library targets only)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || GetUseConsoleRunner ||  || Valid only for targets generating a console executable&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetUseConsoleRunner || bool useIt||Valid only for targets generating a console executable&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ProjectFile* || GetFile || int index|| Returns a file from the target&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || GetFilesCount ||  || Returns number of files for the target&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== cbProject ==&lt;br /&gt;
Extends CompileTargetBase.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || GetModified ||  || Return true if the project is modified in any way&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetModified || bool modified|| Mark the project as modified or not&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetMakefile ||  || Returns file name for the Makefile&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetMakefile || wxString makefile || Set Makefile name when using a custom Makefile to build the project&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || IsMakefileCustom ||  || True if the project is using a custom Makefile for compilation, false if not&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetMakefileCustom || bool custom || Mark if the project should use a custom Makefile for compilation&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || CloseAllFiles || bool dontsave || Close all project files. If dontsave is true no file would be saved even if modified&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SaveAllFiles ||  || Save all project files&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || Save ||  || Save the project&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SaveLayout ||  || Save the project's layout. Layout is the list of open project files, which one is active, where the cursor is located on each one of those, etc&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || LoadLayout ||  || Load the project's layout&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetCommonTopLevelPath ||  || Returns the top-level path common to all project files&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || GetFilesCount ||  || Returns number of files in the project&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ProjectFile* || GetFile || int index || Access a file of the project. Index is between 0 and GetFilesCount()&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ProjectFile* || GetFileByFilename || wxString filename, bool isRelative, bool isUnixFilename || Access a file of the project.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || RemoveFile || ProjectFile *file || Remove a file from the project&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ProjectFile* || AddFile || const wxString &amp;amp;targetName, const wxString &amp;amp;fileaname, bool compile, bool link, int weight || See API docs for cbProject::AddFile&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ProjectFile* || AddFile || int targetIndex, const wxString &amp;amp;fileaname, bool compile, bool link, int weight || See API docs for cbProject::AddFile&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || GetBuildTargetsCount ||  || Returns the number of targets&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ProjectBuildTarget* || GetBuildTarget || int index|| Access a build target by index. Index is from 0 to GetBuildTargetsCount&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ProjectBuildTarget* || GetBuildTarget || const wxString &amp;amp;targetName || Access a build target by name&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ProjectBuildTarget* || AddBuildTarget || cont wxString &amp;amp;targetName || Add a new build target&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || RenameBuildTarget || int index, const wxString &amp;amp;targetName || Rename a build target&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || RenameBuildTarget || const wxString &amp;amp;oldTargetName, const wxString &amp;amp;newTargetName || Rename a build target&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ProjectBuildTarget* || DuplicateBuildTarget || int index, const wxString &amp;amp;newName || Duplicate a build target&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ProjectBuildTarget* || DuplicateBuildTarget || const wxString &amp;amp;targetName, const wxString &amp;amp;newName || Duplicate a build target&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || RemoveBuildTarget || int index || Remove a build target&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || RemoveBuildTarget || const wxString &amp;amp;targetName || Remove a build target&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || ExportTargetAsProject || int index || Export a target as a new project. In other words, save a copy of the project containing only the specified target. The user will be prompted with a dialog to select the new project name.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || ExportTargetAsProject || wxString targetName || Export a target as new project&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || BuildTargetValid || const wxString &amp;amp;name, bool virtualsToo || Is there a build target (virtual or real) by name?&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetFirstValidBuildTargetName || bool virtualsToo || Returns the first valid (virtual or real) build target&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetDefaultExecuteTarget || const wxString &amp;amp;name || Set the build target name which will be pre-selected when the &amp;quot;Select target&amp;quot; dialog appears when running the project&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetDefaultExecuteTarget || || Returns the name of the build target which will be pre-selected when the &amp;quot;Select target&amp;quot; dialog appears when running the project&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SetActiveBuildTarget || const wxString &amp;amp;name || Set the active build target. If name does not exist, then the first virtual target is set or the first real target, depending which is valid.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetActiveBuildTarget || || The active build target name. Note that this might be a virtual target ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || SelectTarget || int initial, bool evenIfOne || Displays a target selection dialog. When invoked, a selection dialog is presented to the user so that he/she can select one target from the list of this project's targets.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PCHMode || GetModeForPCH ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetModeForPCH || PCHMode mode ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetExtendedObjectNamesGeneration || bool ext || Sets object names generation to extended/normal mode. In normal mode (the default), the file foo.cpp generates the foo.o object file. In extended mode, the file foo.cpp generates the foo.cpp.o object file&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || GetExtendedObjectNamesGeneration || || Returns true for extended mode, false for normal mode&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetNotes || const wxString &amp;amp;notes || Set notes on the project&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString  || GetNotes || || Returns the notes on the project&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetShowNotesOnLoad || bool show || Set if to show project notes on load automatically&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool ||  GetShowNotesOnLoad || || Returns true if project notes would be shown automatically during load&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ShowNotes || bool nonEmptyOnly, bool editable || Show project notes now&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AddToExtensions || wxString || Deprecated since rev 11857&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || ExtensionListNodes || const wxString &amp;amp;extension || Returns a list of child nodes to the given extension node. The elements of the list could be passed as extension parameters to all the Extension* methods. Available since rev 11857&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || ExtensionListNodeAttributes || const wxString &amp;amp;extension || Returns a list of with the names of the attributes on the given extension node. Available since rev 11857&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || ExtensionGetNodeAttribute || const wxString &amp;amp;extension, const wxString &amp;amp;attributeName || Returns the value of the given attribute on the given extension node. If the attribute is not found it will return an empty string. Available since rev 11857&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ExtensionSetNodeAttribute || const wxString &amp;amp;extension, const wxString &amp;amp;attributeName, const wxString &amp;amp;attributeValue || Set the value of the given attribute on the given extension node. Available since rev 11857&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ExtensionRemoveNodeAttribute || const wxString &amp;amp;extension, const wxString &amp;amp;attributeName || Remove the given attribute on the given extension node. Available since rev 11857&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || ExtensionAddNode || const wxString &amp;amp;extension, const wxString &amp;amp;nodeName || Add a child node to the given extension node. Return the extension string for the new node. Available since rev 11857&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ExtensionRemoveNode || const wxString &amp;amp;extension || Remove the given extension node. Available since rev 11857&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || DefineVirtualBuildTarget || const wxString &amp;amp;alias, const wxArrayString &amp;amp;targets || Define a new virtual build target. A virtual build target is not really a build target itself but it is an alias for a group of other build targets, real or virtual&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || HasVirtualBuildTarget|| const wxSring &amp;amp;alias || Does a virtual build target exist?&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || RemoveVirtualBuildTarget|| const wxString &amp;amp;alias || Remove a virtual build target. Return true if removed&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || GetVirtualBuildTargets|| ||Get a list of all defined virtual build targets.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || GetVirtualBuildTargetGroup || const wxString &amp;amp;alias || Access a virtual build target's group of build targets. Returns the list of all build targets under the alias&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxArrayString || GetExpandedVirtualBuildTargetGroup|| const wxString &amp;amp;alias || Access a virtual build target's expanded group of build targets. The difference from GetVirtualBuildTargetGroup() lies in that this function returns the full list of real build targets in this group (by recursively expanding virtual build targets in the group)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || CanAddToVirtualBuildTarget || const wxSring &amp;amp;alias, const wxString &amp;amp;target || Checks if a build target (virtual or real) can be added to a virtual build target, without causing a circular-reference.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetTitle || const wxString &amp;amp;title || Changes project title. This method overrides CompileTargetBase::SetTitle. It sends additional notification event to plugins and than calls base method.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
NOTE: Extension* methods take an extension parameter. This could be used to describe a way to access nodes in the extension xml element in the project file. The extension could be a path separated by '/' characters where every element of the path could be a node name, node name followed by an index or node name followed by attribute match.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| _T(&amp;quot;debugger&amp;quot;) || Finds the first debugger node&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| _T(&amp;quot;debugger/remote_debugging&amp;quot;) || Finds the first child named 'remote_debugging' of the first 'debugger' node&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| _T(&amp;quot;debugger/remote_debugging[1]&amp;quot;) || Finds the second child named 'remote_debugging' of the first 'debugger' node&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| _T(&amp;quot;debugger/remote_debugging(target=Debug)&amp;quot;) || Finds the first child named 'remote_debugging' which has an attribute named target and which has a value 'Debug'&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== EditorBase ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetFilename ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetFilename || wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetShortName ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || GetModified ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetModified || bool ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetTitle ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetTitle || wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Activate ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || Close ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || Save ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || IsBuiltinEditor ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || ThereAreOthers ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || GotoLine || int,bool ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ToggleBreakpoint || int,bool ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || HasBreakpoint || int ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || GotoNextBreakpoint ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || GotoPreviousBreakpoint ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ToggleBookmark || int,bool ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || HasBookmark || int ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || GotoNextBookmark ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || GotoPreviousBookmark ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Undo ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Redo ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Cut ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Copy ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Paste ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || CanUndo ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || CanRedo ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || CanPaste ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || HasSelection ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== cbEditor ==&lt;br /&gt;
Extends EditorBase.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetEditorTitle || wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ProjectFile* || GetProjectFile ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || Save ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || SaveAs ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || FoldAll ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || UnfoldAll ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ToggleAllFolds ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || FoldBlockFromLine || int ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || UnfoldBlockFromLine || int ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || ToggleFoldBlockFromLine || int ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| int || GetLineIndentInSpaces || int ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetLineIndentString || int ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Touch ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || Reload || bool ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || Print || bool,PrintColourMode,bool ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || AutoComplete ||  ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || AddBreakpoint || int,bool ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| bool || RemoveBreakpoint || int,bool ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| void || SetText || wxString || this is not present in cbEditor; included to help scripts edit text&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxString || GetText ||  || this is not present in cbEditor; included to help scripts edit text&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== TiXML Binding==&lt;br /&gt;
This describes the squirrel interface to read XML files. The base is the TinyXML library and for detailed function description, please refere to the official [https://www.grinninglizard.com/tinyxmldocs/index.html TinyXML documentation]. If a function from this section takes string as Argument it can take wxString or squirrel native strings. If a function returns a string it returns squirrel native strings.&lt;br /&gt;
&lt;br /&gt;
Argument annotation: if multiple types are accepted they are separated with | . For example if a function takes an empty, string or int parameter for the first argument and a string for the second this is described as &amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
(void | string | int, string)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TiXMLPrinter ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remark&lt;br /&gt;
|-&lt;br /&gt;
|string&lt;br /&gt;
|CStr&lt;br /&gt;
|&lt;br /&gt;
|Return the XML as string&lt;br /&gt;
|-&lt;br /&gt;
|void&lt;br /&gt;
|SetIndent&lt;br /&gt;
|string&lt;br /&gt;
|Set indentation string&lt;br /&gt;
|-&lt;br /&gt;
|void&lt;br /&gt;
|SetLineBreak&lt;br /&gt;
|string&lt;br /&gt;
| Set line break type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===TiXMLNode===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
! Remark&lt;br /&gt;
|-&lt;br /&gt;
|string&lt;br /&gt;
|Value&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|void&lt;br /&gt;
|SetValue&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===TiXMLDocument ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remark&lt;br /&gt;
|-&lt;br /&gt;
|TiXMLDocument&lt;br /&gt;
|constructor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bool&lt;br /&gt;
|SaveFile&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bool&lt;br /&gt;
|SaveFile&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bool&lt;br /&gt;
|LoadFile&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;void | string&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|string&lt;br /&gt;
|Parse&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TiXMLElement&lt;br /&gt;
| RootElement&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bool&lt;br /&gt;
|Error&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|string&lt;br /&gt;
|ErrorDesc&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|bool&lt;br /&gt;
|Accept&lt;br /&gt;
|TiXMLPringer&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== TiXMLElement===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remark&lt;br /&gt;
|-&lt;br /&gt;
|TiXMLElement&lt;br /&gt;
|constructor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|string&lt;br /&gt;
|Attribute&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TiXMLAttribute&lt;br /&gt;
|GetAttribute&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TiXMLAttribute&lt;br /&gt;
| FirstAttribute&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| TiXMLAttribute&lt;br /&gt;
| LastAttribute&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|void&lt;br /&gt;
|RemoveAttribute&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|void&lt;br /&gt;
|SetAttribute&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;(string, string | int | float)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TiXMLElement&lt;br /&gt;
|FirstChildElement&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;(void | string)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| TiXMLNode&lt;br /&gt;
|LastChild&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;(void | string)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TiXMLElement&lt;br /&gt;
|LastChildElement&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;(void | string)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TiXMLElement&lt;br /&gt;
|NextSiblingElement&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;(void | string)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| TiXMLNode&lt;br /&gt;
|PreviousSibling&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;(void | string)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|string&lt;br /&gt;
|GetText&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===TiXmlAttribute ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remark&lt;br /&gt;
|-&lt;br /&gt;
|TiXmlAttribute&lt;br /&gt;
|constructor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|string&lt;br /&gt;
| Value&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|string&lt;br /&gt;
|Name&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|int&lt;br /&gt;
|IntValue&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|float&lt;br /&gt;
|DoubleValue&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| TiXmlAttribute&lt;br /&gt;
|Next&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|void&lt;br /&gt;
|SetValue&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|void&lt;br /&gt;
|SetName&lt;br /&gt;
|string&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===TiXmlHandle===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Return value&lt;br /&gt;
!Name&lt;br /&gt;
!Arguments&lt;br /&gt;
!Remark&lt;br /&gt;
|-&lt;br /&gt;
|TiXmlHandle&lt;br /&gt;
|constructor&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TiXmlHandle&lt;br /&gt;
|FirstChild&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;void | string&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TiXmlHandle&lt;br /&gt;
|FirstChildElement&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;void | string&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TiXMLNode&lt;br /&gt;
|ToNode&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TiXMLElement&lt;br /&gt;
|ToElement&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TiXMLNode&lt;br /&gt;
|Node&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|TiXMLElement&lt;br /&gt;
|Element&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Constants==&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 0px solid gray&amp;quot;&lt;br /&gt;
!Constant&lt;br /&gt;
!Type&lt;br /&gt;
! Remarks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PLATFORM||int||this defines the platform Code::Blocks is currently running on. It is equal to only one of the following PLATFORM_* constants&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PLATFORM_MSW||int||All Windows platforms&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| PLATFORM_GTK||int||All GTK platforms (Linux, BSD, Solaris, Darwin, etc.)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|PLATFORM_MAC||int||All Mac platforms&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|PLATFORM_OS2||int||OS/2 platform&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|PLATFORM_X11||int||All X11 platforms&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|PLATFORM_UNKNOWN||int||Unknown platform. Please inform us if PLATFORM == PLATFORM_UNKNOWN so we can make this platform known too ;)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''Plugin version'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|PLUGIN_SDK_VERSION_MAJOR||int||=1, it will change when the SDK interface breaks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|PLUGIN_SDK_VERSION_MINOR||int||=13, it will change when the SDK interface breaks&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|PLUGIN_SDK_VERSION_RELEASE||int||=13, it will change when the SDK interface breaks&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |Script binding version&lt;br /&gt;
|-&lt;br /&gt;
|SCRIPTING_VERSION_MAJOR||int||=2, it will change when the script binding interface breaks (for ex. bindings removed, api breaks, function type changed)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|SCRIPTING_VERSION_MINOR||int||=0, it will change when the script binding interface breaks (for ex. new bindings introduced)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|SCRIPTING_VERSION_RELEASE|| int||=0, it will change when the script binding interface breaks (bug fixes)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''Path separator for filenames'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxFILE_SEP_PATH||wxString||Path separator. &amp;quot;\&amp;quot; for windows, &amp;quot;/&amp;quot; for all other platforms&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''Message dialog flags'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxOK||int|| Flag for Message() 's third argument (flags).&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxYES_NO||int|| -&amp;quot;-&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxCANCEL||int||-&amp;quot;-&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxICON_QUESTION|| int||-&amp;quot;-&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxICON_INFORMATION||int||-&amp;quot;-&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxICON_WARNING||int||-&amp;quot;-&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxICON_ERROR||int||-&amp;quot;-&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''Message dialog return values'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxID_OK|| int||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxID_YES ||int||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxID_NO||int||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxID_CANCEL||int||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''enum wxPathFormat'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxPATH_NATIVE||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxPATH_UNIX||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxPATH_BEOS||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxPATH_MAC||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|wxPATH_DOS||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wxPATH_WIN|| enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxPATH_OS2||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxPATH_VM3 ||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''For wxFileName::GetPath()'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxPATH_GET_VOLUME||enum||include the volume if applicable&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxPATH_GET_SEPARATOR||enum||terminate the path with the separator&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''enum wxPathNormalize'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxPATH_NORM_ENV_VARS||enum||replace env vars with their values&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxPATH_NORM_DOTS||enum||squeeze all .. and . and prepend cwd&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxPATH_NORM_TILDE||enum||Unix only: replace ~ and ~user&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxPATH_NORM_CASE||enum||if case insensitive =&amp;gt; tolower&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxPATH_NORM_ABSOLUTE || enum||make the path absolute&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxPATH_NORM_LONG||enum||make the path the long form&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxPATH_NORM_SHORTCUT ||enum||resolve the shortcut, if it is a shortcut&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wxPATH_NORM_ALL|| enum||= 0x00ff &amp;amp; ~wxPATH_NORM_CASE&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''enum OptionsRelationType'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ortCompilerOptions|| enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ortLinkerOptions||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ortIncludeDirs||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ortLibDirs||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ortResDirs||enum ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''enum OptionsRelation'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|orUseParentOptionsOnly|| enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|orUseTargetOptionsOnly||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|orPrependToParentOptions||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|orAppendToParentOptions||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''enum TargetType'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ttExecutable||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ttConsoleOnly||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ttStaticLib||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ttDynamicLib||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ttCommandsOnly||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''enum MakeCommand'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|mcClean||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|mcDistClean||enum ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|mcBuild|| enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|mcCompileFile||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|mcAskRebuildNeeded||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|mcSilentBuild||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''enum PCHMode'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|pchSourceDir||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|pchObjectDir||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|pchSourceFile||enum ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''enum PrintScope'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|psSelection||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|psActiveEditor||enum ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|psAllOpenEditors||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''enum PrintColourMode'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|pcmBlackAndWhite||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| pcmColourOnWhite||enum ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|pcmInvertColours||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|pcmAsIs||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''enum TemplateOutputType'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wizProject||enum||TemplateOutputType::totProject&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wizTarget || enum||TemplateOutputType::totTarget&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wizFiles ||enum||TemplateOutputType::totFiles&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|wizCustom||enum|| TemplateOutputType::totCustom&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''enum SearchDirs'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|sdHome||enum||User's home directory&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| sdBase||enum||Code::Blocks' installation base&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|sdTemp||enum||System-wide temp folder&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|sdPath||enum||All dirs in the PATH environment variable&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|sdConfig||enum|| Config folder&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|sdCurrent||enum||Current working folder&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|sdPluginsUser||enum || Plugins folder in user's dir&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|sdScriptsUser||enum||Scripts folder in user's dir&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|sdDataUser||enum||Data folder in user's dir&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|sdAllUser||enum|| Convenience value meaning &amp;quot;all sd*User values&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|sdPluginsGlobal||enum||Plugins folder in base dir&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|sdScriptsGlobal||enum||Scripts folder in base dir&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|sdDataGlobal||enum||Data folder in base dir&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|sdAllGlobal||enum||Convenience value meaning &amp;quot;all sd*Global values&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|sdAllKnown||enum||All known dirs (i.e. all of the above)&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''SupportedPlatforms'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|spMac||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|spUnix ||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|spWindows||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|spAll||enum||&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''TargetFilenameGenerationPolicy'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|tgfpPlatformDefault||enum||Generate filename based on running platform defaults.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|tgfpNone ||enum||No automatic generation; let the user specify the full filename&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''ModuleType'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|mtProjectManager ||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|mtEditorManager||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|mtLogManager||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|mtOpenFilesList||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|mtEditorTab||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|mtUnknown||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''FileTreeDataKind'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ftdkUndefined||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ftdkProject||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ftdkFolder||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ftdkFile||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ftdkVirtualGroup||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|ftdkVirtualFolder||enum||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''File extensions (e.g. &amp;quot;cbp&amp;quot;)'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_WORKSPACE||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_CODEBLOCKS||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_DEVCPP||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_MSVC6||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_MSVC7||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_MSVC10||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EXT_MSVC6_WORKSPACE||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_MSVC7_WORKSPACE || wxString ||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EXT_ASM||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| EXT_D||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_F||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_F77||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_F90||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_F95||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_FOR||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_FPP||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_F03||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_F08||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_JAVA||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_C||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_CC||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_CPP||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_CXX||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_CPLPL||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_INL||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_H||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_HH||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_HPP||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_HXX||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_HPLPL||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_S||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_SS||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_S62||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_OBJECT||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_XRCRESOURCE||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_STATICLIB||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_DYNAMICLIB||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_EXECUTABLE||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_NATIVE||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_RESOURCE||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_RESOURCEBIN||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_XML||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|EXT_SCRIPT||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #f8f8f8;&amp;quot; align=&amp;quot;center&amp;quot; |'''File extensions with leading dot (e.g. &amp;quot;.cbp&amp;quot;)'''&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_WORKSPACE||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_CODEBLOCKS||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_DEVCPP||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_MSVC6||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_MSVC7||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_MSVC10||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_MSVC7_WORKSPACE||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_MSVC6_WORKSPACE||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_D||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_F||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_F77||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_F90||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_F95||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_FOR||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_FPP||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_F03||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_F08||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_JAVA||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_C||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_CC||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_CPP||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_CXX||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_HPP||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_CPLPL||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_H||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_HH||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_HPP||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_HXX||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_HPLPL||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_S||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_SS||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_S62||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_OBJECT||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_XRCRESOURCE||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_STATICLIB||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_DYNAMICLIB||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_EXECUTABLE||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_NATIVE||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_RESOURCE||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_RESOURCEBIN||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_XML||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|DOT_EXT_SCRIPT||wxString||&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Plugins with script bindings==&lt;br /&gt;
[[Environment Variables plugin]] Plugin to change environment variables&lt;br /&gt;
&lt;br /&gt;
==Script example collection==&lt;br /&gt;
[[Some examples]]&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
*[[Scripting Code::Blocks|Scripting index]]&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Build_scripts&amp;diff=9549</id>
		<title>Build scripts</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Build_scripts&amp;diff=9549"/>
		<updated>2022-01-18T07:34:01Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: base is a keyword in squirrel, so we need a other name for the parameter&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scripting Code::Blocks]]&lt;br /&gt;
&lt;br /&gt;
Build scripts can help configuring build options and reusing these configurations.&lt;br /&gt;
&lt;br /&gt;
What you need to do is create as many build scripts are needed and attach them to projects or build targets.&lt;br /&gt;
&lt;br /&gt;
Let's see an example build script for the GNU GCC compiler:&lt;br /&gt;
&lt;br /&gt;
 // file: build_debug_symbols.script&lt;br /&gt;
 &lt;br /&gt;
 function SetBuildOptions(cbase)&lt;br /&gt;
 {&lt;br /&gt;
     // enable debugging symbols&lt;br /&gt;
     cbase.AddCompilerOption(_T(&amp;quot;-g&amp;quot;));&lt;br /&gt;
     // disable all optimizations&lt;br /&gt;
     cbase.AddCompilerOption(_T(&amp;quot;-O0&amp;quot;));&lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
The &amp;quot;cbase&amp;quot; parameter in this function is a CompiletargetBase instance. SetBuildOptions(cbase) is called before the project/target is built. Each build script ''must define this function'', even if it is not needed (in which case you can leave it with an empty body).&lt;br /&gt;
&lt;br /&gt;
This specific script enables the generation of debugging symbols for the build target it is attached to. You could similarly have other build scripts for different configuration sets like optimizations, architecture, C++ options, C++ standards, etc.&lt;br /&gt;
&lt;br /&gt;
Great. Now you have created your own set of build scripts. How do you attach them to project/targets? Simple: &amp;quot;Project-&amp;gt;Properties-&amp;gt;Scripts&amp;quot;. Select the project or target to attach a script to and click &amp;quot;Add&amp;quot;. If you want to detach a script, click &amp;quot;Remove&amp;quot;.&lt;br /&gt;
You can also change the order scripts are ran with the two little arrows on the right side.&lt;br /&gt;
Finally, you can press &amp;quot;Validate all scripts&amp;quot; to make sure that the attached build scripts are valid.&lt;br /&gt;
&lt;br /&gt;
If you choose to go the build scripts way for your project, please don't use the project build options dialog (unless maybe for global project settings). If you do, things may not work as expected and you will unrightfully blame Code::Blocks for this ;).&lt;br /&gt;
&lt;br /&gt;
Well, that's all there is to it!&lt;br /&gt;
&lt;br /&gt;
''NOTE: I 've been told that this is like MS Visual Studio's &amp;quot;properties&amp;quot;. I wouldn't know since I don't use it myself. But maybe this similarity (if it really exists) helps you grasp the concept better.''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Scripting commands]]&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=FAQ-Compiling_(general)&amp;diff=7733</id>
		<title>FAQ-Compiling (general)</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=FAQ-Compiling_(general)&amp;diff=7733"/>
		<updated>2014-04-01T11:29:54Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: make the rebuild location more clear&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Documentation]]&lt;br /&gt;
__TOC__&lt;br /&gt;
Return to '''[[FAQ]]'''.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Q: What compiler can I use with Code::Blocks? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Code::Blocks philosophy is to be able to use any compiler on earth! Well, almost.&lt;br /&gt;
&lt;br /&gt;
As a matter of fact it largely depends on the used compiler plugin. Some provided with the default Code::Blocks installation are GNU GCC (MinGW/Cygwin), MS Visual C++ Free Toolkit 2003, Borland's C++ Compiler 5.5, DigitalMars Free Compiler., OpenWatcom, Small Device C Compiler (SDCC) and others.&lt;br /&gt;
&lt;br /&gt;
==== Q: My project should be compiled with a custom makefile. Is it possible with Code::Blocks? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Yes, you can. You need to change one settings with Code::Blocks 8.02:&lt;br /&gt;
&lt;br /&gt;
In your project's Properties, check &amp;quot;This is a custom makefile&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
And that's it! :)&lt;br /&gt;
&lt;br /&gt;
==== Q: I have downloaded MS VC++ Toolkit 2003 for a compiler. How do I tell Code::Blocks that it is my compiler? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Click on &amp;quot;Project/Build options&amp;quot; and select the compiler you want for your project/target.&lt;br /&gt;
&lt;br /&gt;
==== Q: Microsoft calls MSVCRT.DLL a &amp;quot;Known DLL.&amp;quot; How do I know if I can/should use it? ====&lt;br /&gt;
&lt;br /&gt;
Microsoft does not clearly describe what [http://msdn2.microsoft.com/en-us/library/abx4dbyh.aspx 'Known DLL'] means. A [http://www.zlib.net/DLL_FAQ.txt zLib FAQ entry] makes it much more clear. The short answer is that MSVCRT.DLL is a protected system component and to preserve system integrity it cannot be updated by any end user product installers but may be updated from time to time by system updates. If it works use it. If it doesn't you'll need use a non protected library such as MSVCR70 or MSVCR80 which not only can be updated but private versions can be installed. A small and simple C program is likely to work just fine with MSVCRT.DLL. A large and complex C++ program is more likely to need the additional functionality of MSVCR.&lt;br /&gt;
&lt;br /&gt;
The MSVCRT.LIB that ships with 32 bit compiler Visual C++ Toolkit 2003 dynamically links to MSVCR71.DLL which is not present in a freshly installed Windows XP system. MSVCR only appears after some software package that needs it such as [http://www.adobe.com/ Adobe Acrobat Reader] is installed. This means that programs that depend on MSVCR must redistribute it or risk not working on a substantial percentage of systems for reasons not obvious to either the affected end users or the program supplier. &lt;br /&gt;
&lt;br /&gt;
For projects that can safely use MSVCRT and where it is impractical to redistribute MSVCR, a Win32 MSVCRT.LIB that links to MSVCRT.DLL is available in any [http://www.microsoft.com/whdc/devtools/ddk/default.mspx Device Driver Kit]. It is best to preserve the MSVCRT.LIB provided by the compiler and alter the name of the MSVCRT.LIB extracted from a DDK. List your newly named MSVCRTxx in the lib. If you use MSVCRT.LIB from the Windows 2003 DDK you may encounter the link '''error LNK2001: unresolved external symbol ___security_cookie'''. This can be solved by switching to the MSVCRT.LIB in the Windows XP DDK or by linking '''bufferoverflowU.lib''' found in the Windows SDK. A Win64 MSVCRT.LIB that links to MSVCRT.DLL is available in the Windows SDK or Platform [http://www.microsoft.com/downloads/details.aspx?FamilyId=E15438AC-60BE-41BD-AA14-7F1E0F19CA0D&amp;amp;displaylang=en PSDK]. &lt;br /&gt;
&lt;br /&gt;
To prevent problems it is recommended to include both /MD and /NODEFAULTLIB:MSVCRT switches so that problems come up at link time instead of random crashes at run time. Be sure to load your programs into [http://www.dependencywalker.com/ Dependancy Walker] to ensure that functions aren't being linked into both MSVCRxx.DLL and MSVCRT.DLL. It is essential that malloc, calloc, realloc, free, and related memory allocation functions all import from the same DLL. &lt;br /&gt;
&lt;br /&gt;
Source: [http://wiki.tcl.tk/11431 TCL Wiki]&lt;br /&gt;
&lt;br /&gt;
==== Q: How can I use a DLL without DEF or LIB files? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' I tried to find a solution, and the following script solved the problem for me. I used a cygwin environment for ''tclsh'' and ''sed'', but the MinGW tools for ''objdump'' and ''dlltool''. See here [http://wiki.tcl.tk/2435 tclsh script to extract import .lib from (any?) DLL (MinGW)]&lt;br /&gt;
&lt;br /&gt;
TODO: Someone might add some informations about problems&lt;br /&gt;
&lt;br /&gt;
Request: Is MinGW or Code::Blocks able to support automatic generation of import libraries ?&lt;br /&gt;
&lt;br /&gt;
See also: http://www.mingw.org/wiki/CreateImportLibraries&lt;br /&gt;
&lt;br /&gt;
See also: http://wyw.dcweb.cn/stdcall.htm&lt;br /&gt;
&lt;br /&gt;
==== Q: Where are the libraries for the OpenGL, Ogre3D, SDL, QT, wxWidgets etc. projects? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' They're not bundled. The templates were provided for your convenience, but you need to download the libraries on your own.&lt;br /&gt;
In common terms, &amp;quot;batteries not included&amp;quot; :)&lt;br /&gt;
&lt;br /&gt;
==== Q: Is it possible to use Visual C++ 6.0 with Code::Blocks? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Yes. See [[Integrating Microsoft Visual C 6 with Code::Blocks IDE]] for a detailed description on using VC++ 6.0 with Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
==== Q: I would like to compile a project using some non-standard libraries. How can I indicate to CodeBlocks that these libraries and include files exist? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' You can specify them for your global environment or just for your project.&lt;br /&gt;
&lt;br /&gt;
For global environment :&amp;lt;br /&amp;gt;&lt;br /&gt;
- Menu &amp;lt;i&amp;gt;Settings/Compiler and debugger&amp;lt;/i&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
- In the &amp;lt;i&amp;gt;Global compiler settings&amp;lt;/i&amp;gt;, select the directories tab&amp;lt;br /&amp;gt;&lt;br /&gt;
- Add the required paths for compiler and linker.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
For your project :&amp;lt;br /&amp;gt;&lt;br /&gt;
- Right click on the project then select &amp;lt;i&amp;gt;Build options&amp;lt;/i&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
- Select the directories tab&amp;lt;br /&amp;gt;&lt;br /&gt;
- Add the required paths for compiler and linker.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Add your specific libraries in the linker tab.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Pay attention to project settings and target settings.&lt;br /&gt;
==== Q: How do I use both Debug and Release builds of wx libraries? ====&lt;br /&gt;
'''A:''' I would use the default method of doing it and the default folder naming.&lt;br /&gt;
&lt;br /&gt;
Using these C::B custom varibles&lt;br /&gt;
 WX_SUFFIX=&amp;quot;&amp;quot;  // ANSI Release&lt;br /&gt;
 WX_SUFFIX=&amp;quot;d&amp;quot;  // ANSI Debug&lt;br /&gt;
 WX_SUFFIX=&amp;quot;u&amp;quot;  // Unicode Release&lt;br /&gt;
 WX_SUFFIX=&amp;quot;ud&amp;quot;  // Unicode debug&lt;br /&gt;
&lt;br /&gt;
I use WX_CFG when I am using a special configuration&lt;br /&gt;
WX_CFG=&amp;quot;rc3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Remember, the CodeBlocks globel variable WX needs to point to the wxWidgets folder.&lt;br /&gt;
&lt;br /&gt;
Example minGW build command for &amp;quot;Unicode debug&amp;quot; 2.8.0 RC3&lt;br /&gt;
&lt;br /&gt;
 mingw32-make -f makefile.gcc VENDOR=rc3 CFG=rc3 USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=debug   UNICODE=1&lt;br /&gt;
&lt;br /&gt;
&amp;quot;VENDOR=&amp;quot; just puts rc3 in the DLL name; &amp;quot;CFG=&amp;quot; sets which folder the DLL is placed in. In this case in lib\gcc_dllrc3&lt;br /&gt;
&lt;br /&gt;
Before using CFG in the mingw32-make build you need to  do one prior wxWidget build without using it; else the build errors out. (See note below.)&lt;br /&gt;
&lt;br /&gt;
&amp;quot;__WXDEBUG__&amp;quot; must be defined (in the codeblocks project setting) if you wish to link against the  debug version of wxWidgets DLL. Else you will get a runtime error, when you try to run your project output.&lt;br /&gt;
&lt;br /&gt;
Contributed by Tim S&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
*I have never gotten the following command to work&lt;br /&gt;
  mingw32-make -f makefile.gcc VENDOR=rc3 CFG=rc3 USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=debug   UNICODE=1&lt;br /&gt;
&lt;br /&gt;
*unless I have first run this command on the same wxWidgets folders&lt;br /&gt;
  mingw32-make -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=debug   UNICODE=1&lt;br /&gt;
&lt;br /&gt;
*I am guessing that the build without the CFG creates a file or directory needed by the build with the CFG.&lt;br /&gt;
&lt;br /&gt;
==== Q: How do I add version information to windows executables and dll's? ====&lt;br /&gt;
'''A:''' You need to create a resource file with the extension .rc and write the version info there. Then add that file to the Code::Blocks project you are working on.&lt;br /&gt;
&lt;br /&gt;
Sample content of a resource file that you can use and modify for your needs:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US&lt;br /&gt;
&lt;br /&gt;
VS_VERSION_INFO    VERSIONINFO&lt;br /&gt;
  FILEVERSION      1,0,0,1&lt;br /&gt;
  PRODUCTVERSION   1,0,0,1&lt;br /&gt;
  FILEFLAGSMASK    0x3fL // VS_FFI_FILEFLAGSMASK&lt;br /&gt;
#ifdef _DEBUG&lt;br /&gt;
  FILEFLAGS        0x1L  // VS_FF_DEBUG|VS_FF_PRIVATEBUILD|VS_FF_PRERELEASE&lt;br /&gt;
#else&lt;br /&gt;
  FILEFLAGS        0x0L  // final version&lt;br /&gt;
#endif&lt;br /&gt;
  FILEOS           VOS_NT_WINDOWS32&lt;br /&gt;
  FILETYPE         VFT_APP&lt;br /&gt;
  FILESUBTYPE      VFT2_UNKNOWN // not used&lt;br /&gt;
{&lt;br /&gt;
  BLOCK &amp;quot;StringFileInfo&amp;quot;&lt;br /&gt;
  {&lt;br /&gt;
    BLOCK &amp;quot;040904E4&amp;quot; // Lang=US English, CharSet=Windows Multilingual&lt;br /&gt;
    {&lt;br /&gt;
      VALUE &amp;quot;Build&amp;quot;,            &amp;quot;August 2007\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;Comments&amp;quot;,         &amp;quot;Free for personal use only.\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;CompanyName&amp;quot;,      &amp;quot;Fake Company\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;Developer&amp;quot;,        &amp;quot;The Developer\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;FileDescription&amp;quot;,  &amp;quot;Application implementing something\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;FileVersion&amp;quot;,      &amp;quot;1.0.000\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;InternalName&amp;quot;,     &amp;quot;AppInternalName\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;LegalCopyright&amp;quot;,   &amp;quot;Copyright (C) 2007 Fake Company\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;LegalTrademarks&amp;quot;,  &amp;quot;All rights reserved.\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;OriginalFilename&amp;quot;, &amp;quot;TheEXE.exe\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;PrivateBuild&amp;quot;,     &amp;quot;\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;ProductName&amp;quot;,      &amp;quot;The EXE\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;ProductVersion&amp;quot;,   &amp;quot;1.0.000\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;SpecialBuild&amp;quot;,     &amp;quot;\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;Support&amp;quot;,          &amp;quot;TheEXE at fake-domain.com\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;Users&amp;quot;,            &amp;quot;Unlimited.\0&amp;quot;&lt;br /&gt;
    } // BLOCK &amp;quot;040904E4&amp;quot;&lt;br /&gt;
  } // BLOCK &amp;quot;StringFileInfo&amp;quot;&lt;br /&gt;
  BLOCK &amp;quot;VarFileInfo&amp;quot;&lt;br /&gt;
  {&lt;br /&gt;
    VALUE &amp;quot;Translation&amp;quot;, 0x409, 1252 // 1252 = 0x04E4&lt;br /&gt;
  } // BLOCK &amp;quot;VarFileInfo&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also you can use the the [[AutoVersioning plugin]] to assist you on the generation of version information. For documentation of the syntax and values used on windows resource files, you can visit the following websites:&lt;br /&gt;
*http://msdn2.microsoft.com/en-us/library/aa380599.aspx&lt;br /&gt;
*http://www.cygwin.com/cygwin-ug-net/windres.html&lt;br /&gt;
&lt;br /&gt;
==== Q: Code::Blocks does not force relink if the library is changed? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Open ''Project-&amp;gt;Properties...-&amp;gt;Build targets (tab)'' and select the executable.  Click ''Dependencies...'' and add the name of the library (including its relative path) to ''External dependency files''. Also see [[The build process of Code::Blocks#Using project dependencies|inter-project dependencies]].&lt;br /&gt;
&lt;br /&gt;
''Example:'' &amp;lt;tt&amp;gt;output\myLibrary\libdostuff.a&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Q: How do I report a compilation problem on the forums? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Try building the project from command line. If the same error comes up, it is a problem with either the source file, the compiler, or the compiler setup. If this is the case, you are unlikely to receive support for it on the Code::Blocks forums, however, [[FAQ-Compiling (errors)#Q: How do I troubleshoot a compiler problem?|How do I troubleshoot a compiler problem?]] may help.&lt;br /&gt;
&lt;br /&gt;
If it works fine building from command line, it is either a problem with your project, Code::Blocks' setup, or possibly an actual bug. When posting this problem, include the name of your compiler, operating system, Code::Blocks version, compiler log (go to ''Settings-&amp;gt;Compiler and debugger...-&amp;gt;Build options (tab)'' and check ''Save build log'' and ''Always output the full command line''), and, if it caused Code::Blocks to crash, the &amp;lt;tt&amp;gt;codeblocks.RPT&amp;lt;/tt&amp;gt; file (located in the Code::Blocks installation directory).&lt;br /&gt;
&lt;br /&gt;
''Template: Paste the following template into your post, editing the relevant sections.''&lt;br /&gt;
 I am running Code::Blocks version &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''Code::BlocksVersionNumber''&amp;lt;/span&amp;gt; on &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''MyOperatingSystem''&amp;lt;/span&amp;gt;&lt;br /&gt;
 (version &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''OperatingSystemVersionNumber''&amp;lt;/span&amp;gt;). The compiler I use is &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''CompilerName''&amp;lt;/span&amp;gt;&lt;br /&gt;
 version &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''CompilerVersionNumber''&amp;lt;/span&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
 When I ...&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''Steps to reproduce problem.''&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''Description of problem.''&amp;lt;/span&amp;gt;&lt;br /&gt;
 ... happens.&lt;br /&gt;
 &lt;br /&gt;
 Build log:&lt;br /&gt;
 [code]&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''Paste &amp;lt;span style=&amp;quot;color:FireBrick&amp;quot;&amp;gt;'''full'''&amp;lt;/span&amp;gt; build log here. (It is found in the 'Build log' tab). Please make always a 'rebuild' (Menu: Build-&amp;gt;Rebuild) or a 'clean' and 'build' before you copy the full build log. ''&amp;lt;/span&amp;gt;&lt;br /&gt;
 [/code]&lt;br /&gt;
 &lt;br /&gt;
 Crash report:&lt;br /&gt;
 [code]&lt;br /&gt;
 ''&amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;Paste the contents of&amp;lt;/span&amp;gt;'' &amp;lt;span style=&amp;quot;color:MidnightBlue&amp;quot;&amp;gt;codeblocks.RPT&amp;lt;/span&amp;gt; ''&amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;here&amp;lt;/span&amp;gt; (if Code::Blocks crashed).''&lt;br /&gt;
 [/code]&lt;br /&gt;
 &lt;br /&gt;
     ''(Although the following is not necessary, showing that you''&lt;br /&gt;
      ''have tried increases the probability of a response.)''&lt;br /&gt;
 I have already tried ...&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''List of attempted solutions.''&amp;lt;/span&amp;gt;&lt;br /&gt;
 ... but none of them worked.&lt;br /&gt;
&lt;br /&gt;
==== Q: All of the Build related options are grayed out? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Code::Blocks checks the file extension for individual files before allowing them to be compiled. Save your file with the correct file extension (&amp;lt;tt&amp;gt;*.c&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;*.cpp&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
More often it is useful to [[Creating a new project|create a project]] so that Code::Blocks can manage the entire build.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Return to '''[[FAQ]]'''.&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Code::Blocks_command_line_arguments&amp;diff=7726</id>
		<title>Code::Blocks command line arguments</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Code::Blocks_command_line_arguments&amp;diff=7726"/>
		<updated>2014-02-11T11:59:24Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: +1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: User Documentation]]&lt;br /&gt;
== Using command line arguments ==&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
# Find the Code::Blocks shortcut in the Desktop or Start menu.&lt;br /&gt;
# Right click on the icon and select Properties.&lt;br /&gt;
# Select the Shortcut tab.&lt;br /&gt;
# Append the command line arguments you want to use to the end of the Target text (behind the quote mark).&lt;br /&gt;
# Run Code::Blocks by using the shortcut you edited.&lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;C:\Program Files\CodeBlocks\codeblocks.exe&amp;quot; /na /nd&lt;br /&gt;
&lt;br /&gt;
=== *nix ===&lt;br /&gt;
&lt;br /&gt;
# Launch a terminal client, such as XTerm, Gnome Terminal or Konsole.&lt;br /&gt;
# Type &amp;quot;codeblocks&amp;quot; and then append the command line arguments you want to use.&lt;br /&gt;
&lt;br /&gt;
Note: Code::Blocks can not run on a real console, X11 must be running and you must use a graphical terminal emulator.&lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
 codeblocks --no-splash-screen --debug-log&lt;br /&gt;
&lt;br /&gt;
== Command line arguments ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 1px solid gray&amp;quot;&lt;br /&gt;
! Argument &lt;br /&gt;
! Function&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ''&amp;lt;filename&amp;gt;''&lt;br /&gt;
| Specifies the project *.cbp filename or workspace *.workspace filename. For instance ''&amp;lt;filename&amp;gt;'' may be ''c:\some\where\a\project.cbp''. Place this argument at end of command line, just before output redirection if any.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''--file='''''&amp;lt;filename&amp;gt;[:line]''&lt;br /&gt;
| Open file in Code::Blocks and optionally jump to a specific line.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''/h''', '''--help''', '''/?''', '''--?'''&lt;br /&gt;
| Shows a help message about the command line arguments.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''/na''', '''--no-check-associations'''&lt;br /&gt;
| Don't perform any file association checks (Windows only).&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''/nd''', '''--no-dde'''&lt;br /&gt;
| Don't start a [http://en.wikipedia.org/wiki/Dynamic_Data_Exchange DDE] server (Windows only).&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''/ns''', '''--no-splash-screen'''&lt;br /&gt;
| Hides the splash screen when the application is loading.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''/d''', '''--debug-log'''&lt;br /&gt;
| Display application's debug log.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''--prefix='''''&amp;lt;str&amp;gt;''&lt;br /&gt;
| Sets the shared data directory prefix.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''/p''', '''--personality='''''&amp;lt;str&amp;gt;'', '''--profile='''''&amp;lt;str&amp;gt;''&lt;br /&gt;
| Sets the [[Personalities|personality]] to use. You can use ''ask'' as the parameter to list available personalities.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''--rebuild'''&lt;br /&gt;
| Clean and build the project / workspace.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''--build'''&lt;br /&gt;
| Build the project / workspace.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''--target='''''&amp;lt;str&amp;gt;''&lt;br /&gt;
| Sets target for batch build. For example --target=&amp;quot;Release&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''--no-batch-window-close'''&lt;br /&gt;
| Keeps the batch log window visible after the batch build has completed.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''--batch-build-notify'''&lt;br /&gt;
| Shows a message after the batch build has completed.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  '''--user-data-dir=&amp;lt;path&amp;gt;'''&lt;br /&gt;
| specify an alternative directory for user settings and user installed plugins&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  '''--script=&amp;lt;str&amp;gt;'''&lt;br /&gt;
| specify a script file to run after loading&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  '''--target=&amp;lt;str&amp;gt;'''&lt;br /&gt;
| the target for the batch build&lt;br /&gt;
|-&lt;br /&gt;
               &lt;br /&gt;
|-&lt;br /&gt;
|  '''--clean'''&lt;br /&gt;
| clean the project/workspace&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  '''--rebuild'''&lt;br /&gt;
| clean and then build the project/workspace&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  '''--build'''&lt;br /&gt;
| just build the project/workspace&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  '''--verbose'''&lt;br /&gt;
| Enable logging of c::b errors&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;gt;''' ''&amp;lt;build log file&amp;gt;''&lt;br /&gt;
| Placed in the very last position of command line, this may be used to redirect standard output to log file, this is not a codeblock option as such, but just a DOS/*nix shell usual standard output redirection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Code::Blocks_command_line_arguments&amp;diff=7725</id>
		<title>Code::Blocks command line arguments</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Code::Blocks_command_line_arguments&amp;diff=7725"/>
		<updated>2014-02-11T11:53:26Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: Add other options&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: User Documentation]]&lt;br /&gt;
== Using command line arguments ==&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
# Find the Code::Blocks shortcut in the Desktop or Start menu.&lt;br /&gt;
# Right click on the icon and select Properties.&lt;br /&gt;
# Select the Shortcut tab.&lt;br /&gt;
# Append the command line arguments you want to use to the end of the Target text (behind the quote mark).&lt;br /&gt;
# Run Code::Blocks by using the shortcut you edited.&lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;C:\Program Files\CodeBlocks\codeblocks.exe&amp;quot; /na /nd&lt;br /&gt;
&lt;br /&gt;
=== *nix ===&lt;br /&gt;
&lt;br /&gt;
# Launch a terminal client, such as XTerm, Gnome Terminal or Konsole.&lt;br /&gt;
# Type &amp;quot;codeblocks&amp;quot; and then append the command line arguments you want to use.&lt;br /&gt;
&lt;br /&gt;
Note: Code::Blocks can not run on a real console, X11 must be running and you must use a graphical terminal emulator.&lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
 codeblocks --no-splash-screen --debug-log&lt;br /&gt;
&lt;br /&gt;
== Command line arguments ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 1px solid gray&amp;quot;&lt;br /&gt;
! Argument &lt;br /&gt;
! Function&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ''&amp;lt;filename&amp;gt;''&lt;br /&gt;
| Specifies the project *.cbp filename or workspace *.workspace filename. For instance ''&amp;lt;filename&amp;gt;'' may be ''c:\some\where\a\project.cbp''. Place this argument at end of command line, just before output redirection if any.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''--file='''''&amp;lt;filename&amp;gt;[:line]''&lt;br /&gt;
| Open file in Code::Blocks and optionally jump to a specific line.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''/h''', '''--help''', '''/?''', '''--?'''&lt;br /&gt;
| Shows a help message about the command line arguments.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''/na''', '''--no-check-associations'''&lt;br /&gt;
| Don't perform any file association checks (Windows only).&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''/nd''', '''--no-dde'''&lt;br /&gt;
| Don't start a [http://en.wikipedia.org/wiki/Dynamic_Data_Exchange DDE] server (Windows only).&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''/ns''', '''--no-splash-screen'''&lt;br /&gt;
| Hides the splash screen when the application is loading.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''/d''', '''--debug-log'''&lt;br /&gt;
| Display application's debug log.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''--prefix='''''&amp;lt;str&amp;gt;''&lt;br /&gt;
| Sets the shared data directory prefix.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''/p''', '''--personality='''''&amp;lt;str&amp;gt;'', '''--profile='''''&amp;lt;str&amp;gt;''&lt;br /&gt;
| Sets the [[Personalities|personality]] to use. You can use ''ask'' as the parameter to list available personalities.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''--rebuild'''&lt;br /&gt;
| Clean and build the project / workspace.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''--build'''&lt;br /&gt;
| Build the project / workspace.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''--target='''''&amp;lt;str&amp;gt;''&lt;br /&gt;
| Sets target for batch build. For example --target=&amp;quot;Release&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''--no-batch-window-close'''&lt;br /&gt;
| Keeps the batch log window visible after the batch build has completed.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''--batch-build-notify'''&lt;br /&gt;
| Shows a message after the batch build has completed.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  '''--user-data-dir=&amp;lt;path&amp;gt;'''&lt;br /&gt;
| specify an alternative directory for user settings and user installed plugins&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  '''--script=&amp;lt;str&amp;gt;'''&lt;br /&gt;
| specify a script file to run after loading&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  '''--target=&amp;lt;str&amp;gt;'''&lt;br /&gt;
| the target for the batch build&lt;br /&gt;
|-&lt;br /&gt;
               &lt;br /&gt;
|-&lt;br /&gt;
|  '''--clean'''&lt;br /&gt;
| clean the project/workspace&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  '''--rebuild'''&lt;br /&gt;
| clean and then build the project/workspace&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  '''--build'''&lt;br /&gt;
| just build the project/workspace&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;gt;''' ''&amp;lt;build log file&amp;gt;''&lt;br /&gt;
| Placed in the very last position of command line, this may be used to redirect standard output to log file, this is not a codeblock option as such, but just a DOS/*nix shell usual standard output redirection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Code::Blocks_command_line_arguments&amp;diff=7724</id>
		<title>Code::Blocks command line arguments</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Code::Blocks_command_line_arguments&amp;diff=7724"/>
		<updated>2014-02-11T11:33:04Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: Added command line parameter user-data-dir&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: User Documentation]]&lt;br /&gt;
== Using command line arguments ==&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
&lt;br /&gt;
# Find the Code::Blocks shortcut in the Desktop or Start menu.&lt;br /&gt;
# Right click on the icon and select Properties.&lt;br /&gt;
# Select the Shortcut tab.&lt;br /&gt;
# Append the command line arguments you want to use to the end of the Target text (behind the quote mark).&lt;br /&gt;
# Run Code::Blocks by using the shortcut you edited.&lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;C:\Program Files\CodeBlocks\codeblocks.exe&amp;quot; /na /nd&lt;br /&gt;
&lt;br /&gt;
=== *nix ===&lt;br /&gt;
&lt;br /&gt;
# Launch a terminal client, such as XTerm, Gnome Terminal or Konsole.&lt;br /&gt;
# Type &amp;quot;codeblocks&amp;quot; and then append the command line arguments you want to use.&lt;br /&gt;
&lt;br /&gt;
Note: Code::Blocks can not run on a real console, X11 must be running and you must use a graphical terminal emulator.&lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
 codeblocks --no-splash-screen --debug-log&lt;br /&gt;
&lt;br /&gt;
== Command line arguments ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;border: 1px solid gray; border-collapse: collapse;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background: #ececec; border: 1px solid gray&amp;quot;&lt;br /&gt;
! Argument &lt;br /&gt;
! Function&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| ''&amp;lt;filename&amp;gt;''&lt;br /&gt;
| Specifies the project *.cbp filename or workspace *.workspace filename. For instance ''&amp;lt;filename&amp;gt;'' may be ''c:\some\where\a\project.cbp''. Place this argument at end of command line, just before output redirection if any.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''--file='''''&amp;lt;filename&amp;gt;[:line]''&lt;br /&gt;
| Open file in Code::Blocks and optionally jump to a specific line.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''/h''', '''--help''', '''/?''', '''--?'''&lt;br /&gt;
| Shows a help message about the command line arguments.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''/na''', '''--no-check-associations'''&lt;br /&gt;
| Don't perform any file association checks (Windows only).&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''/nd''', '''--no-dde'''&lt;br /&gt;
| Don't start a [http://en.wikipedia.org/wiki/Dynamic_Data_Exchange DDE] server (Windows only).&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''/ns''', '''--no-splash-screen'''&lt;br /&gt;
| Hides the splash screen when the application is loading.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''/d''', '''--debug-log'''&lt;br /&gt;
| Display application's debug log.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''--prefix='''''&amp;lt;str&amp;gt;''&lt;br /&gt;
| Sets the shared data directory prefix.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''/p''', '''--personality='''''&amp;lt;str&amp;gt;'', '''--profile='''''&amp;lt;str&amp;gt;''&lt;br /&gt;
| Sets the [[Personalities|personality]] to use. You can use ''ask'' as the parameter to list available personalities.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''--rebuild'''&lt;br /&gt;
| Clean and build the project / workspace.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''--build'''&lt;br /&gt;
| Build the project / workspace.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''--target='''''&amp;lt;str&amp;gt;''&lt;br /&gt;
| Sets target for batch build. For example --target=&amp;quot;Release&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''--no-batch-window-close'''&lt;br /&gt;
| Keeps the batch log window visible after the batch build has completed.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''--batch-build-notify'''&lt;br /&gt;
| Shows a message after the batch build has completed.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''&amp;gt;''' ''&amp;lt;build log file&amp;gt;''&lt;br /&gt;
| Placed in the very last position of command line, this may be used to redirect standard output to log file, this is not a codeblock option as such, but just a DOS/*nix shell usual standard output redirection&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|  '''--user-data-dir=&amp;lt;path&amp;gt;'''&lt;br /&gt;
| specify an alternative directory for user settings and user installed plugins&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=FAQ-Compiling_(general)&amp;diff=7716</id>
		<title>FAQ-Compiling (general)</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=FAQ-Compiling_(general)&amp;diff=7716"/>
		<updated>2014-01-19T21:01:03Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: /* Q: How do I report a compilation problem on the forums? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Documentation]]&lt;br /&gt;
__TOC__&lt;br /&gt;
Return to '''[[FAQ]]'''.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Q: What compiler can I use with Code::Blocks? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Code::Blocks philosophy is to be able to use any compiler on earth! Well, almost.&lt;br /&gt;
&lt;br /&gt;
As a matter of fact it largely depends on the used compiler plugin. Some provided with the default Code::Blocks installation are GNU GCC (MinGW/Cygwin), MS Visual C++ Free Toolkit 2003, Borland's C++ Compiler 5.5, DigitalMars Free Compiler., OpenWatcom, Small Device C Compiler (SDCC) and others.&lt;br /&gt;
&lt;br /&gt;
==== Q: My project should be compiled with a custom makefile. Is it possible with Code::Blocks? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Yes, you can. You need to change one settings with Code::Blocks 8.02:&lt;br /&gt;
&lt;br /&gt;
In your project's Properties, check &amp;quot;This is a custom makefile&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
And that's it! :)&lt;br /&gt;
&lt;br /&gt;
==== Q: I have downloaded MS VC++ Toolkit 2003 for a compiler. How do I tell Code::Blocks that it is my compiler? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Click on &amp;quot;Project/Build options&amp;quot; and select the compiler you want for your project/target.&lt;br /&gt;
&lt;br /&gt;
==== Q: Microsoft calls MSVCRT.DLL a &amp;quot;Known DLL.&amp;quot; How do I know if I can/should use it? ====&lt;br /&gt;
&lt;br /&gt;
Microsoft does not clearly describe what [http://msdn2.microsoft.com/en-us/library/abx4dbyh.aspx 'Known DLL'] means. A [http://www.zlib.net/DLL_FAQ.txt zLib FAQ entry] makes it much more clear. The short answer is that MSVCRT.DLL is a protected system component and to preserve system integrity it cannot be updated by any end user product installers but may be updated from time to time by system updates. If it works use it. If it doesn't you'll need use a non protected library such as MSVCR70 or MSVCR80 which not only can be updated but private versions can be installed. A small and simple C program is likely to work just fine with MSVCRT.DLL. A large and complex C++ program is more likely to need the additional functionality of MSVCR.&lt;br /&gt;
&lt;br /&gt;
The MSVCRT.LIB that ships with 32 bit compiler Visual C++ Toolkit 2003 dynamically links to MSVCR71.DLL which is not present in a freshly installed Windows XP system. MSVCR only appears after some software package that needs it such as [http://www.adobe.com/ Adobe Acrobat Reader] is installed. This means that programs that depend on MSVCR must redistribute it or risk not working on a substantial percentage of systems for reasons not obvious to either the affected end users or the program supplier. &lt;br /&gt;
&lt;br /&gt;
For projects that can safely use MSVCRT and where it is impractical to redistribute MSVCR, a Win32 MSVCRT.LIB that links to MSVCRT.DLL is available in any [http://www.microsoft.com/whdc/devtools/ddk/default.mspx Device Driver Kit]. It is best to preserve the MSVCRT.LIB provided by the compiler and alter the name of the MSVCRT.LIB extracted from a DDK. List your newly named MSVCRTxx in the lib. If you use MSVCRT.LIB from the Windows 2003 DDK you may encounter the link '''error LNK2001: unresolved external symbol ___security_cookie'''. This can be solved by switching to the MSVCRT.LIB in the Windows XP DDK or by linking '''bufferoverflowU.lib''' found in the Windows SDK. A Win64 MSVCRT.LIB that links to MSVCRT.DLL is available in the Windows SDK or Platform [http://www.microsoft.com/downloads/details.aspx?FamilyId=E15438AC-60BE-41BD-AA14-7F1E0F19CA0D&amp;amp;displaylang=en PSDK]. &lt;br /&gt;
&lt;br /&gt;
To prevent problems it is recommended to include both /MD and /NODEFAULTLIB:MSVCRT switches so that problems come up at link time instead of random crashes at run time. Be sure to load your programs into [http://www.dependencywalker.com/ Dependancy Walker] to ensure that functions aren't being linked into both MSVCRxx.DLL and MSVCRT.DLL. It is essential that malloc, calloc, realloc, free, and related memory allocation functions all import from the same DLL. &lt;br /&gt;
&lt;br /&gt;
Source: [http://wiki.tcl.tk/11431 TCL Wiki]&lt;br /&gt;
&lt;br /&gt;
==== Q: How can I use a DLL without DEF or LIB files? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' I tried to find a solution, and the following script solved the problem for me. I used a cygwin environment for ''tclsh'' and ''sed'', but the MinGW tools for ''objdump'' and ''dlltool''. See here [http://wiki.tcl.tk/2435 tclsh script to extract import .lib from (any?) DLL (MinGW)]&lt;br /&gt;
&lt;br /&gt;
TODO: Someone might add some informations about problems&lt;br /&gt;
&lt;br /&gt;
Request: Is MinGW or Code::Blocks able to support automatic generation of import libraries ?&lt;br /&gt;
&lt;br /&gt;
See also: http://www.mingw.org/wiki/CreateImportLibraries&lt;br /&gt;
&lt;br /&gt;
See also: http://wyw.dcweb.cn/stdcall.htm&lt;br /&gt;
&lt;br /&gt;
==== Q: Where are the libraries for the OpenGL, Ogre3D, SDL, QT, wxWidgets etc. projects? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' They're not bundled. The templates were provided for your convenience, but you need to download the libraries on your own.&lt;br /&gt;
In common terms, &amp;quot;batteries not included&amp;quot; :)&lt;br /&gt;
&lt;br /&gt;
==== Q: Is it possible to use Visual C++ 6.0 with Code::Blocks? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Yes. See [[Integrating Microsoft Visual C 6 with Code::Blocks IDE]] for a detailed description on using VC++ 6.0 with Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
==== Q: I would like to compile a project using some non-standard libraries. How can I indicate to CodeBlocks that these libraries and include files exist? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' You can specify them for your global environment or just for your project.&lt;br /&gt;
&lt;br /&gt;
For global environment :&amp;lt;br /&amp;gt;&lt;br /&gt;
- Menu &amp;lt;i&amp;gt;Settings/Compiler and debugger&amp;lt;/i&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
- In the &amp;lt;i&amp;gt;Global compiler settings&amp;lt;/i&amp;gt;, select the directories tab&amp;lt;br /&amp;gt;&lt;br /&gt;
- Add the required paths for compiler and linker.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
For your project :&amp;lt;br /&amp;gt;&lt;br /&gt;
- Right click on the project then select &amp;lt;i&amp;gt;Build options&amp;lt;/i&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
- Select the directories tab&amp;lt;br /&amp;gt;&lt;br /&gt;
- Add the required paths for compiler and linker.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Add your specific libraries in the linker tab.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Pay attention to project settings and target settings.&lt;br /&gt;
==== Q: How do I use both Debug and Release builds of wx libraries? ====&lt;br /&gt;
'''A:''' I would use the default method of doing it and the default folder naming.&lt;br /&gt;
&lt;br /&gt;
Using these C::B custom varibles&lt;br /&gt;
 WX_SUFFIX=&amp;quot;&amp;quot;  // ANSI Release&lt;br /&gt;
 WX_SUFFIX=&amp;quot;d&amp;quot;  // ANSI Debug&lt;br /&gt;
 WX_SUFFIX=&amp;quot;u&amp;quot;  // Unicode Release&lt;br /&gt;
 WX_SUFFIX=&amp;quot;ud&amp;quot;  // Unicode debug&lt;br /&gt;
&lt;br /&gt;
I use WX_CFG when I am using a special configuration&lt;br /&gt;
WX_CFG=&amp;quot;rc3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Remember, the CodeBlocks globel variable WX needs to point to the wxWidgets folder.&lt;br /&gt;
&lt;br /&gt;
Example minGW build command for &amp;quot;Unicode debug&amp;quot; 2.8.0 RC3&lt;br /&gt;
&lt;br /&gt;
 mingw32-make -f makefile.gcc VENDOR=rc3 CFG=rc3 USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=debug   UNICODE=1&lt;br /&gt;
&lt;br /&gt;
&amp;quot;VENDOR=&amp;quot; just puts rc3 in the DLL name; &amp;quot;CFG=&amp;quot; sets which folder the DLL is placed in. In this case in lib\gcc_dllrc3&lt;br /&gt;
&lt;br /&gt;
Before using CFG in the mingw32-make build you need to  do one prior wxWidget build without using it; else the build errors out. (See note below.)&lt;br /&gt;
&lt;br /&gt;
&amp;quot;__WXDEBUG__&amp;quot; must be defined (in the codeblocks project setting) if you wish to link against the  debug version of wxWidgets DLL. Else you will get a runtime error, when you try to run your project output.&lt;br /&gt;
&lt;br /&gt;
Contributed by Tim S&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
*I have never gotten the following command to work&lt;br /&gt;
  mingw32-make -f makefile.gcc VENDOR=rc3 CFG=rc3 USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=debug   UNICODE=1&lt;br /&gt;
&lt;br /&gt;
*unless I have first run this command on the same wxWidgets folders&lt;br /&gt;
  mingw32-make -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=debug   UNICODE=1&lt;br /&gt;
&lt;br /&gt;
*I am guessing that the build without the CFG creates a file or directory needed by the build with the CFG.&lt;br /&gt;
&lt;br /&gt;
==== Q: How do I add version information to windows executables and dll's? ====&lt;br /&gt;
'''A:''' You need to create a resource file with the extension .rc and write the version info there. Then add that file to the Code::Blocks project you are working on.&lt;br /&gt;
&lt;br /&gt;
Sample content of a resource file that you can use and modify for your needs:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US&lt;br /&gt;
&lt;br /&gt;
VS_VERSION_INFO    VERSIONINFO&lt;br /&gt;
  FILEVERSION      1,0,0,1&lt;br /&gt;
  PRODUCTVERSION   1,0,0,1&lt;br /&gt;
  FILEFLAGSMASK    0x3fL // VS_FFI_FILEFLAGSMASK&lt;br /&gt;
#ifdef _DEBUG&lt;br /&gt;
  FILEFLAGS        0x1L  // VS_FF_DEBUG|VS_FF_PRIVATEBUILD|VS_FF_PRERELEASE&lt;br /&gt;
#else&lt;br /&gt;
  FILEFLAGS        0x0L  // final version&lt;br /&gt;
#endif&lt;br /&gt;
  FILEOS           VOS_NT_WINDOWS32&lt;br /&gt;
  FILETYPE         VFT_APP&lt;br /&gt;
  FILESUBTYPE      VFT2_UNKNOWN // not used&lt;br /&gt;
{&lt;br /&gt;
  BLOCK &amp;quot;StringFileInfo&amp;quot;&lt;br /&gt;
  {&lt;br /&gt;
    BLOCK &amp;quot;040904E4&amp;quot; // Lang=US English, CharSet=Windows Multilingual&lt;br /&gt;
    {&lt;br /&gt;
      VALUE &amp;quot;Build&amp;quot;,            &amp;quot;August 2007\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;Comments&amp;quot;,         &amp;quot;Free for personal use only.\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;CompanyName&amp;quot;,      &amp;quot;Fake Company\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;Developer&amp;quot;,        &amp;quot;The Developer\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;FileDescription&amp;quot;,  &amp;quot;Application implementing something\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;FileVersion&amp;quot;,      &amp;quot;1.0.000\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;InternalName&amp;quot;,     &amp;quot;AppInternalName\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;LegalCopyright&amp;quot;,   &amp;quot;Copyright (C) 2007 Fake Company\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;LegalTrademarks&amp;quot;,  &amp;quot;All rights reserved.\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;OriginalFilename&amp;quot;, &amp;quot;TheEXE.exe\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;PrivateBuild&amp;quot;,     &amp;quot;\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;ProductName&amp;quot;,      &amp;quot;The EXE\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;ProductVersion&amp;quot;,   &amp;quot;1.0.000\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;SpecialBuild&amp;quot;,     &amp;quot;\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;Support&amp;quot;,          &amp;quot;TheEXE at fake-domain.com\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;Users&amp;quot;,            &amp;quot;Unlimited.\0&amp;quot;&lt;br /&gt;
    } // BLOCK &amp;quot;040904E4&amp;quot;&lt;br /&gt;
  } // BLOCK &amp;quot;StringFileInfo&amp;quot;&lt;br /&gt;
  BLOCK &amp;quot;VarFileInfo&amp;quot;&lt;br /&gt;
  {&lt;br /&gt;
    VALUE &amp;quot;Translation&amp;quot;, 0x409, 1252 // 1252 = 0x04E4&lt;br /&gt;
  } // BLOCK &amp;quot;VarFileInfo&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also you can use the the [[AutoVersioning plugin]] to assist you on the generation of version information. For documentation of the syntax and values used on windows resource files, you can visit the following websites:&lt;br /&gt;
*http://msdn2.microsoft.com/en-us/library/aa380599.aspx&lt;br /&gt;
*http://www.cygwin.com/cygwin-ug-net/windres.html&lt;br /&gt;
&lt;br /&gt;
==== Q: Code::Blocks does not force relink if the library is changed? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Open ''Project-&amp;gt;Properties...-&amp;gt;Build targets (tab)'' and select the executable.  Click ''Dependencies...'' and add the name of the library (including its relative path) to ''External dependency files''. Also see [[The build process of Code::Blocks#Using project dependencies|inter-project dependencies]].&lt;br /&gt;
&lt;br /&gt;
''Example:'' &amp;lt;tt&amp;gt;output\myLibrary\libdostuff.a&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Q: How do I report a compilation problem on the forums? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Try building the project from command line. If the same error comes up, it is a problem with either the source file, the compiler, or the compiler setup. If this is the case, you are unlikely to receive support for it on the Code::Blocks forums, however, [[FAQ-Compiling (errors)#Q: How do I troubleshoot a compiler problem?|How do I troubleshoot a compiler problem?]] may help.&lt;br /&gt;
&lt;br /&gt;
If it works fine building from command line, it is either a problem with your project, Code::Blocks' setup, or possibly an actual bug. When posting this problem, include the name of your compiler, operating system, Code::Blocks version, compiler log (go to ''Settings-&amp;gt;Compiler and debugger...-&amp;gt;Build options (tab)'' and check ''Save build log'' and ''Always output the full command line''), and, if it caused Code::Blocks to crash, the &amp;lt;tt&amp;gt;codeblocks.RPT&amp;lt;/tt&amp;gt; file (located in the Code::Blocks installation directory).&lt;br /&gt;
&lt;br /&gt;
''Template: Paste the following template into your post, editing the relevant sections.''&lt;br /&gt;
 I am running Code::Blocks version &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''Code::BlocksVersionNumber''&amp;lt;/span&amp;gt; on &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''MyOperatingSystem''&amp;lt;/span&amp;gt;&lt;br /&gt;
 (version &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''OperatingSystemVersionNumber''&amp;lt;/span&amp;gt;). The compiler I use is &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''CompilerName''&amp;lt;/span&amp;gt;&lt;br /&gt;
 version &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''CompilerVersionNumber''&amp;lt;/span&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
 When I ...&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''Steps to reproduce problem.''&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''Description of problem.''&amp;lt;/span&amp;gt;&lt;br /&gt;
 ... happens.&lt;br /&gt;
 &lt;br /&gt;
 Build log:&lt;br /&gt;
 [code]&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''Paste &amp;lt;span style=&amp;quot;color:FireBrick&amp;quot;&amp;gt;'''full'''&amp;lt;/span&amp;gt; build log here. (It is found in the 'Build log' tab). Please make always a 'rebuild' or a 'clean' and 'build' before you copy the full build log. ''&amp;lt;/span&amp;gt;&lt;br /&gt;
 [/code]&lt;br /&gt;
 &lt;br /&gt;
 Crash report:&lt;br /&gt;
 [code]&lt;br /&gt;
 ''&amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;Paste the contents of&amp;lt;/span&amp;gt;'' &amp;lt;span style=&amp;quot;color:MidnightBlue&amp;quot;&amp;gt;codeblocks.RPT&amp;lt;/span&amp;gt; ''&amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;here&amp;lt;/span&amp;gt; (if Code::Blocks crashed).''&lt;br /&gt;
 [/code]&lt;br /&gt;
 &lt;br /&gt;
     ''(Although the following is not necessary, showing that you''&lt;br /&gt;
      ''have tried increases the probability of a response.)''&lt;br /&gt;
 I have already tried ...&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''List of attempted solutions.''&amp;lt;/span&amp;gt;&lt;br /&gt;
 ... but none of them worked.&lt;br /&gt;
&lt;br /&gt;
==== Q: All of the Build related options are grayed out? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Code::Blocks checks the file extension for individual files before allowing them to be compiled. Save your file with the correct file extension (&amp;lt;tt&amp;gt;*.c&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;*.cpp&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
More often it is useful to [[Creating a new project|create a project]] so that Code::Blocks can manage the entire build.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Return to '''[[FAQ]]'''.&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=FAQ-Compiling_(errors)&amp;diff=7715</id>
		<title>FAQ-Compiling (errors)</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=FAQ-Compiling_(errors)&amp;diff=7715"/>
		<updated>2014-01-19T20:58:31Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: /* Q: How do I troubleshoot a compiler problem? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Documentation]]&lt;br /&gt;
__TOC__&lt;br /&gt;
Return to '''[[FAQ]]'''.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Q: How do I troubleshoot a compiler problem? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' I would start by turning on full Compiler logging.&lt;br /&gt;
&lt;br /&gt;
This is done by selecting the &amp;quot;Full command line&amp;quot; option Under menu &amp;quot;Settings&amp;quot; -&amp;gt; &amp;quot;Compiler&amp;quot; -&amp;gt; Global compiler settings -&amp;gt; [the compiler you use] -&amp;gt; &amp;quot;Other Setting&amp;quot; tab, &amp;quot;Compiler logging&amp;quot;. In 12.11 and newer this is enabled by default.&lt;br /&gt;
&lt;br /&gt;
This option will make Code::Blocks output the exact commands it uses to compile your code.&lt;br /&gt;
&lt;br /&gt;
Things to remember:&lt;br /&gt;
&lt;br /&gt;
* Look at the &amp;quot;Build Log&amp;quot; NOT the &amp;quot;Build Message&amp;quot; tab&lt;br /&gt;
* Do a re-build instead of build in order to get a full build log.&lt;br /&gt;
* You should review all the commands and their options;&lt;br /&gt;
* If you have compiled your app before, do a ''re-''build (or ''clean'' before build) to see all compiling / linking steps;&lt;br /&gt;
* If you don't know what an option or a command does please read the documentation for the compiler/linker you're using;&lt;br /&gt;
* Look for missing commands;&lt;br /&gt;
* For every source file (&amp;lt;tt&amp;gt;.cpp&amp;lt;/tt&amp;gt;; &amp;lt;tt&amp;gt;.c&amp;lt;/tt&amp;gt;; &amp;lt;tt&amp;gt;.d&amp;lt;/tt&amp;gt;; etc) in your project, you must have at least one command in the log. This command must produce an object file (file extension &amp;lt;tt&amp;gt;.o&amp;lt;/tt&amp;gt; if using gcc/g++ and &amp;lt;tt&amp;gt;.obj&amp;lt;/tt&amp;gt; if using Visual Studio);&lt;br /&gt;
* Every object file should be linked in the final executable, if not there are undefined symbols errors;&lt;br /&gt;
* Remember the file extension matters: &amp;lt;tt&amp;gt;*.c&amp;lt;/tt&amp;gt; is compiled as C file, &amp;lt;tt&amp;gt;*.cpp&amp;lt;/tt&amp;gt; is compiled as C++ file. [http://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html Read more]&lt;br /&gt;
* If you have no luck, you can try to ask in the forum, but '''read''' first [https://wiki.codeblocks.org/index.php?title=FAQ-Compiling_%28general%29#Q:_How_do_I_report_a_compilation_problem_on_the_forums.3F &amp;quot;How do I report a compilation problem on the forums&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
==== Q: What do I need to know when using 3rd party libs? ====&lt;br /&gt;
Here are some basics about typical mistakes done when working with third party libs, including wxWidgets. The following is valid for ''every'' third party SDK / toolbox / component you want to use and describes what steps your have to do:&lt;br /&gt;
&lt;br /&gt;
* Download the sources of the component OR a ready-to-use development version. The difference: While the first requires you to compile the component yourself it will definitely work with your compiler. The latter must be compiled in a compatible way: So a compatible compiler, compatible OS, compatible settings. Inspect the components docs about how to get what you want.&lt;br /&gt;
* Place the component sources and compiled parts anywhere you want It is not required to copy such parts to any other folder you might think - in fact, this may even be dangerous in case you overwrite existing files.&lt;br /&gt;
* Create a project where you want to use your component.&lt;br /&gt;
* In the ''compiler'' settings, point to the folder, where the include files of your component are. For WX this is special, as usually you include like #include &amp;lt;wx/foo.h&amp;gt;. So do ''not'' point to [Component_Folder]\include\wx, but to [Component_Folder]\include instead.&lt;br /&gt;
* Note that the compiler only needs to know the interfaces / classes / structures / methods, it will not throw an error about undefined references or alike. The compiler will only complain in case it cannot find references in terms of include files. If thats the case, adjust your project's compiler settings. Keep in mind that you do need to fulfil the requirements of your component itself, too. Thus, wxChart for example will need for wxWidgets, too. So - you may need to do the same process for wxWidgets, too before you can use wxChart - unless you have done that already.&lt;br /&gt;
* In the ''linker'' settings, point to the folder where you have your compiled library. A library usually ends with *.a or *.lib. Note that there are generally two types of libs: Static libs (after linking you are done) and Dynamic libs (where you link against an import lib but require another dynamic lib at runtime).&lt;br /&gt;
* In the linker settings add the library/libraries you need to link against in the ''right order'' to the list of libs to link against. ''Order matters'' - again, dependencies must be taken into account. Inspect the developers guide of the component to know the dependencies. On Windows, this may include the MSDN, too which tells you what libraries you need to link against for certain symbols you or the library may make use of.&lt;br /&gt;
* The linker will never complain about includes it cannot find. Because the linker just links object files or library files together. But the linker may complain about unresolved symbols which you need to provide. So if that happens, either your setup is missing a lib, or the order is wrong.&lt;br /&gt;
&lt;br /&gt;
Again, this is valid for all third party stuff you want to use. Its heavily ''platform'' and ''compiler'' dependent. The IDE should be less of concern for you. Every IDE can be setup in a way it will compile and link your stuff unless you provide everything needed as explained above.&lt;br /&gt;
&lt;br /&gt;
If you don't understand parts written here it is ''strongly'' recommended you start with a book about general programming in C/C++ that covers library handling in more detail.&lt;br /&gt;
&lt;br /&gt;
For the example wxChart in the end is not easy for starters. Usually you need to compile wxWidgets before, then wxChart and usually not all dependencies are explained in the docs and it behaves differently on different OS'es / compilers. Also, wcChart can be compiled in many flavours - so you need to make sure the flavour matches a) your needs and b) the way you compiled wxWidgets.&lt;br /&gt;
&lt;br /&gt;
==== Q: My simple C++ program throws up lots of errors - what is going on? ====&lt;br /&gt;
&lt;br /&gt;
If you have a C++ program like this:&lt;br /&gt;
&lt;br /&gt;
  #include &amp;lt;iostream&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;hello world\n&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
and when you compile it you get errors like this:&lt;br /&gt;
&lt;br /&gt;
  fatal error: iostream: No such file or directory&lt;br /&gt;
&lt;br /&gt;
then you have probably given your source file a .c extension. If you do that, the GCC compiler (and others) will probably attempt to compile the file as a C program, not as C++. You should always give your C++ source files the extension .cpp to make sure the compiler handles them correctly.&lt;br /&gt;
&lt;br /&gt;
==== Q: I imported a MSVCToolkit project/workspace, but Code::Blocks insists on trying to use GCC. What's wrong? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' A little documentation problem ^^;. The &amp;quot;default compiler&amp;quot; is usually GCC, so when you imported it with &amp;quot;the default compiler&amp;quot;, you told it to use GCC. To fix this situation, go to &amp;quot;Project&amp;quot;, &amp;quot;Build Options&amp;quot; and select VC++ Toolkit as your compiler.&lt;br /&gt;
&lt;br /&gt;
Another possibility is to put the Microsoft compiler as the default one.  To do this, choose '''''Settings - Compiler''''', choose the Microsoft compiler in the '''''Selected Compiler''''' section (top of dialog box) and press the '''''Set as default''''' button.&lt;br /&gt;
&lt;br /&gt;
From now onwards, for all new projects the Microsoft compiler will be taken by default.&lt;br /&gt;
&lt;br /&gt;
==== Q: When compiling a wxWidgets project, I get several &amp;quot;variable 'vtable for xxxx' can't be auto-imported&amp;quot;. What's wrong? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' You need to add WXUSINGDLL in &amp;quot;Project-&amp;gt;Build options-&amp;gt;Compiler #defines&amp;quot; and rebuild your project (or create a new project and use the &amp;quot;Using wxWidgets DLL&amp;quot; project option which adds &amp;quot;-DWXUSINGDLL&amp;quot; to Project-&amp;gt;Build options-&amp;gt;Other options).&lt;br /&gt;
Other errors with the same resolution are:&lt;br /&gt;
'unresolved external symbol &amp;quot;char const * const wxEmptyString&amp;quot; (?wxEmptyString@@3PBDB)' or similar.&lt;br /&gt;
If you were using 1.0-finalbeta and were trying to build a statically linked wxWidgets project, the cause of the problem was some faulty templates. But that's fixed now.&lt;br /&gt;
&lt;br /&gt;
==== Q: I can't compile a multithreaded app with VC Toolkit! Where are the libraries? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Sorry, no fix for your problem...&lt;br /&gt;
&lt;br /&gt;
Your problem doesn't come from CodeBlocks. It exists, because the free VC toolkit (VCTK) doesn't provide all the libraries and tools which come with Visual C++ (VC) which isn't free, unfortunately.&lt;br /&gt;
&lt;br /&gt;
Try buying a full-fledged VC++, or even better, download [http://www.mingw.org/ MinGW]&lt;br /&gt;
&lt;br /&gt;
The libraries that can be obtained free of charge are:&lt;br /&gt;
&lt;br /&gt;
Paths:&lt;br /&gt;
 (VCT3) Visual C++ Toolkit 2003 - C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib&lt;br /&gt;
 (PSDK) Platform SDK - C:\Program Files\Microsoft Platform SDK\Lib&lt;br /&gt;
 (NSDK) .NET 1.1 SDK - C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib&lt;br /&gt;
&lt;br /&gt;
C runtime libs:&lt;br /&gt;
 LIBC.LIB 	Single-threaded, static link                                          (VCT3, NSDK)&lt;br /&gt;
 LIBCMT.LIB 	Multithreaded, static link                                            (VCT3, NSDK)&lt;br /&gt;
 MSVCRT.LIB 	Multithreaded, dynamic link (import library for MSVCR71.DLL)          (NSDK)&lt;br /&gt;
 LIBCD.LIB 	Single-threaded, static link (debug)                                  (VCT3, NSDK)&lt;br /&gt;
 LIBCMTD.LIB 	Multithreaded, static link (debug)                                    (NSDK)&lt;br /&gt;
 MSVCRTD.LIB 	Multithreaded, dynamic link (import library for MSVCR71D.DLL) (debug) (NSDK)&lt;br /&gt;
&lt;br /&gt;
C++ libs:&lt;br /&gt;
 LIBCP.LIB 	Single-threaded, static link                                          (VCT3, PSDK)&lt;br /&gt;
 LIBCPMT.LIB 	Multithreaded, static link                                            (VCT3)&lt;br /&gt;
 MSVCPRT.LIB 	Multithreaded, dynamic link (import library for MSVCP71.dll)          (none)&lt;br /&gt;
 LIBCPD.LIB 	Single-threaded, static link (debug)                                  (VCT3)&lt;br /&gt;
 LIBCPMTD.LIB 	Multithreaded, static link (debug)                                    (none)&lt;br /&gt;
 MSVCPRTD.LIB 	Multithreaded, dynamic link (import library for MSVCP71D.DLL) (debug) (none)&lt;br /&gt;
&lt;br /&gt;
Try setting the library linker directories to:&lt;br /&gt;
 C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib&lt;br /&gt;
 C:\Program Files\Microsoft Platform SDK\Lib&lt;br /&gt;
 C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib&lt;br /&gt;
in that order.&lt;br /&gt;
&lt;br /&gt;
The ones listed as (none) above are actually present in the IA64 and AMD64 subdirectories of the PSDK lib directory.  Not sure if these would work on 32-bit windows, however, they may if they are&lt;br /&gt;
meant to work in 32-bit compatibility mode on the 64-bit processors.  Worth a try.  Otherwise, you&lt;br /&gt;
can link statically to the C++ library instead of using MSVCP71.dll.  If you really want to link against MSVCP71.dll you can try to create MSVCP71.LIB from the dll using lib.exe and sed.  Search google for &amp;quot;exports.sed&amp;quot; for detailed steps.&lt;br /&gt;
&lt;br /&gt;
See also: [http://wiki.tcl.tk/2435 tclsh script to extract import .lib from (any?) DLL (MinGW)]&lt;br /&gt;
&lt;br /&gt;
See also: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_c_run.2d.time_libraries.asp&lt;br /&gt;
&lt;br /&gt;
See also: http://sapdb.2scale.net/moin.cgi/MS_20C_2b_2b_20Toolkit&lt;br /&gt;
&lt;br /&gt;
==== Q: I get this error when compiling: Symbol &amp;quot;isascii&amp;quot; was not found in &amp;quot;codeblocks.dll&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Make sure you didn't mix up the MSVC headers or libs with the MinGW ones.&lt;br /&gt;
&lt;br /&gt;
==== Q: My build fails with multiple ''undefined reference'' errors? ====&lt;br /&gt;
&lt;br /&gt;
''Example:''&lt;br /&gt;
 undefined reference to `WSACleanup@8&lt;br /&gt;
 undefined reference to `WSACleanup@0&lt;br /&gt;
&lt;br /&gt;
'''A:''' Most of the time it is because the required library is not linked with your project. Go to ''Project-&amp;gt;Build options...-&amp;gt;Linker settings (tab)'' and add the required library or libraries.&lt;br /&gt;
&lt;br /&gt;
If the error includes a line number, it is likely that this is a problem with your code. Track down down your function declarations and implementations. Ensure they all match up, are spelled correctly, and have the correct scope resolution.&lt;br /&gt;
&lt;br /&gt;
''VERY'' often you can get help by just googling for the name of the undefined reference, for this example its &amp;quot;WSACleanup&amp;quot;. Usually one of the first links is the SDK documentation, like [http://msdn.microsoft.com/en-us/library/windows/desktop/ms741549%28v=vs.85%29.aspx this from MSDN for WSACleanup]. You'll find there a lot useful information, including what libraries you need to link against, as for the exsample:&lt;br /&gt;
'''Requirements'''&lt;br /&gt;
* Minimum supported client: Windows 2000 Professional&lt;br /&gt;
* Minimum supported server: Windows 2000 Server&lt;br /&gt;
* Header: '''Winsock2.h'''&lt;br /&gt;
* Library: '''Ws2_32'''.lib&lt;br /&gt;
* DLL: '''Ws2_32.dll'''&lt;br /&gt;
The header file '''Winsock2.h''' you need to include in your sources. Most likely you have done that already because otherwise you would have gotten a compiler error unable to find the function declaration. The library you need to link against, you can remove any prefix like &amp;quot;lib&amp;quot; and the file extension like &amp;quot;.lib&amp;quot;, &amp;quot;.a&amp;quot; or &amp;quot;.so&amp;quot; - so just type &amp;quot;'''Ws2_32'''&amp;quot; in the linker options. Also make sure you have added the path to that library in the linker include path's options, otherwise the linker will complain that it cannot find that library you want to link against. You also know, that you should distribute '''Ws2_32.dll''' for the runtime version of you app, luckily this one usually ships with Windows anyways, so no need to do something here.&lt;br /&gt;
&lt;br /&gt;
==== Q: My build fails in the compile/link/run step with a ''Permission denied'' error? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' There are several possible causes for this:&lt;br /&gt;
&lt;br /&gt;
# The output directory does not have read/write access.&lt;br /&gt;
#* Either change control settings on the output directory, or move the project to different location.&lt;br /&gt;
# A previous instance of the executable failed to terminate properly.&lt;br /&gt;
#* Open your system's equivalent of Process/Task Manager, search the list for the name of the executable Code::Blocks is trying to output, and terminate it.&lt;br /&gt;
#* Logging off or rebooting will achieve the same effect.&lt;br /&gt;
# The executable is open.&lt;br /&gt;
#* If the executable is open in a hex-editor or actively being run, close it.&lt;br /&gt;
# Security software is interfering.&lt;br /&gt;
#* The target file is locked while an antivirus programming is scanning it; either wait a few seconds for the antivirus scan to finish, set an exception in the antivirus settings, or (temporarily) disable the antivirus program.&lt;br /&gt;
#* Firewalls with very strict settings sometimes block execution; try reducing the firewall's settings or adding an exception.&lt;br /&gt;
#* Switching security software may have left traces behind that are interfering; hunt down the remnants of the old antivirus/firewall software and remove them.&lt;br /&gt;
# The file/library cannot be found.&lt;br /&gt;
#* Double check all of the compiler and linker [[FAQ-Compiling (general)#Q: I would like to compile a project using some non-standard libraries. How can I indicate to CodeBlocks that these libraries and include files exist?|search directories]] (including any [[Global compiler variables|variables]] they may be using) are properly setup.&lt;br /&gt;
# Code::Blocks was improperly installed.&lt;br /&gt;
#* Mixing binaries from a stable release and a nightly build (or even two different nightly builds) is highly likely to cause a slew of problems; [[Installing Code::Blocks|reinstall Code::Blocks]] in an empty directory.&lt;br /&gt;
# Multiple installed compilers are interfering with each other.&lt;br /&gt;
#* If they are not required to keep, completely remove all but the most used compiler.&lt;br /&gt;
#* If several compilers are required, ensure that '''none''' of them are in the ''system'' path (this is so that Code::Blocks will be able to manage all paths).&lt;br /&gt;
#* Also, do not place any compilers in their default installation path (for example &amp;lt;tt&amp;gt;C:\MinGW&amp;lt;/tt&amp;gt;), as some compilers are hard-coded to look for headers in a default path ''before'' searching their own respective directories.&lt;br /&gt;
# On windows 7, the service &amp;quot;Application Experience&amp;quot; is not running [http://stackoverflow.com/questions/7655471/ld-exe-cannot-open-output-file-permission-denied#answer-7904469 as explained on stackoverflow].&lt;br /&gt;
See also: [/index.php/topic,15047.0.html Permission denied forums discussion]&lt;br /&gt;
&lt;br /&gt;
==== Q: My build fails to link due to ''multiple definition of xyz'' errors? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' GCC 4.6.1 mingw target (Windows) is known to occasionally (and erroneously) report this if link-time optimization (&amp;lt;tt&amp;gt;-flto&amp;lt;/tt&amp;gt;) is used.&lt;br /&gt;
&lt;br /&gt;
First, of course, check that no token has been defined multiple times. If the source code is clean, and yet the errors persist, adding linker switch (''Project-&amp;gt;Build options...-&amp;gt;Linker settings (tab)'')&lt;br /&gt;
 -Wl,--allow-multiple-definition&lt;br /&gt;
will enable the code to link.&lt;br /&gt;
&lt;br /&gt;
See also: [http://sourceware.org/bugzilla/show_bug.cgi?id=12762 Bug 12762]&lt;br /&gt;
&lt;br /&gt;
==== Q: How can I change the language of the compiler (gcc) output to english? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Codeblocks 12.11 or higher: Settings-&amp;gt;Environment-&amp;gt;Environment Variables. Add &amp;quot;LC_ALL&amp;quot; with value &amp;quot;C&amp;quot;. -&amp;gt;Set Now -&amp;gt; Ok&lt;br /&gt;
&lt;br /&gt;
Since a few releases gcc is localized. This can make difficult to find (google ;) ) solutions for specific problems. With this setting the output is again in english.&lt;br /&gt;
&lt;br /&gt;
!! this can break displaying of non-aschii characters so you can also use LC_ALL = en_US.utf8 (/index.php/topic,17579.msg120613.html#msg120613)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Return to '''[[FAQ]]'''.&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=FAQ-Compiling_(errors)&amp;diff=7714</id>
		<title>FAQ-Compiling (errors)</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=FAQ-Compiling_(errors)&amp;diff=7714"/>
		<updated>2014-01-19T20:57:37Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: Add a link to the template for reporting compiler errors in he forum&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Documentation]]&lt;br /&gt;
__TOC__&lt;br /&gt;
Return to '''[[FAQ]]'''.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Q: How do I troubleshoot a compiler problem? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' I would start by turning on full Compiler logging.&lt;br /&gt;
&lt;br /&gt;
This is done by selecting the &amp;quot;Full command line&amp;quot; option Under menu &amp;quot;Settings&amp;quot; -&amp;gt; &amp;quot;Compiler&amp;quot; -&amp;gt; Global compiler settings -&amp;gt; [the compiler you use] -&amp;gt; &amp;quot;Other Setting&amp;quot; tab, &amp;quot;Compiler logging&amp;quot;. In 12.11 and newer this is enabled by default.&lt;br /&gt;
&lt;br /&gt;
This option will make Code::Blocks output the exact commands it uses to compile your code.&lt;br /&gt;
&lt;br /&gt;
Things to remember:&lt;br /&gt;
&lt;br /&gt;
* Look at the &amp;quot;Build Log&amp;quot; NOT the &amp;quot;Build Message&amp;quot; tab&lt;br /&gt;
* Do a re-build instead of build in order to get a full build log.&lt;br /&gt;
* You should review all the commands and their options;&lt;br /&gt;
* If you have compiled your app before, do a ''re-''build (or ''clean'' before build) to see all compiling / linking steps;&lt;br /&gt;
* If you don't know what an option or a command does please read the documentation for the compiler/linker you're using;&lt;br /&gt;
* Look for missing commands;&lt;br /&gt;
* For every source file (&amp;lt;tt&amp;gt;.cpp&amp;lt;/tt&amp;gt;; &amp;lt;tt&amp;gt;.c&amp;lt;/tt&amp;gt;; &amp;lt;tt&amp;gt;.d&amp;lt;/tt&amp;gt;; etc) in your project, you must have at least one command in the log. This command must produce an object file (file extension &amp;lt;tt&amp;gt;.o&amp;lt;/tt&amp;gt; if using gcc/g++ and &amp;lt;tt&amp;gt;.obj&amp;lt;/tt&amp;gt; if using Visual Studio);&lt;br /&gt;
* Every object file should be linked in the final executable, if not there are undefined symbols errors;&lt;br /&gt;
* Remember the file extension matters: &amp;lt;tt&amp;gt;*.c&amp;lt;/tt&amp;gt; is compiled as C file, &amp;lt;tt&amp;gt;*.cpp&amp;lt;/tt&amp;gt; is compiled as C++ file. [http://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html Read more]&lt;br /&gt;
* If you have no luck, you can try to ask in the forum, but '''read''' first [https://wiki.codeblocks.org/index.php?title=FAQ-Compiling_%28general%29#Q:_How_do_I_report_a_compilation_problem_on_the_forums.3F &amp;quot;how i report a compiler prolem&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
==== Q: What do I need to know when using 3rd party libs? ====&lt;br /&gt;
Here are some basics about typical mistakes done when working with third party libs, including wxWidgets. The following is valid for ''every'' third party SDK / toolbox / component you want to use and describes what steps your have to do:&lt;br /&gt;
&lt;br /&gt;
* Download the sources of the component OR a ready-to-use development version. The difference: While the first requires you to compile the component yourself it will definitely work with your compiler. The latter must be compiled in a compatible way: So a compatible compiler, compatible OS, compatible settings. Inspect the components docs about how to get what you want.&lt;br /&gt;
* Place the component sources and compiled parts anywhere you want It is not required to copy such parts to any other folder you might think - in fact, this may even be dangerous in case you overwrite existing files.&lt;br /&gt;
* Create a project where you want to use your component.&lt;br /&gt;
* In the ''compiler'' settings, point to the folder, where the include files of your component are. For WX this is special, as usually you include like #include &amp;lt;wx/foo.h&amp;gt;. So do ''not'' point to [Component_Folder]\include\wx, but to [Component_Folder]\include instead.&lt;br /&gt;
* Note that the compiler only needs to know the interfaces / classes / structures / methods, it will not throw an error about undefined references or alike. The compiler will only complain in case it cannot find references in terms of include files. If thats the case, adjust your project's compiler settings. Keep in mind that you do need to fulfil the requirements of your component itself, too. Thus, wxChart for example will need for wxWidgets, too. So - you may need to do the same process for wxWidgets, too before you can use wxChart - unless you have done that already.&lt;br /&gt;
* In the ''linker'' settings, point to the folder where you have your compiled library. A library usually ends with *.a or *.lib. Note that there are generally two types of libs: Static libs (after linking you are done) and Dynamic libs (where you link against an import lib but require another dynamic lib at runtime).&lt;br /&gt;
* In the linker settings add the library/libraries you need to link against in the ''right order'' to the list of libs to link against. ''Order matters'' - again, dependencies must be taken into account. Inspect the developers guide of the component to know the dependencies. On Windows, this may include the MSDN, too which tells you what libraries you need to link against for certain symbols you or the library may make use of.&lt;br /&gt;
* The linker will never complain about includes it cannot find. Because the linker just links object files or library files together. But the linker may complain about unresolved symbols which you need to provide. So if that happens, either your setup is missing a lib, or the order is wrong.&lt;br /&gt;
&lt;br /&gt;
Again, this is valid for all third party stuff you want to use. Its heavily ''platform'' and ''compiler'' dependent. The IDE should be less of concern for you. Every IDE can be setup in a way it will compile and link your stuff unless you provide everything needed as explained above.&lt;br /&gt;
&lt;br /&gt;
If you don't understand parts written here it is ''strongly'' recommended you start with a book about general programming in C/C++ that covers library handling in more detail.&lt;br /&gt;
&lt;br /&gt;
For the example wxChart in the end is not easy for starters. Usually you need to compile wxWidgets before, then wxChart and usually not all dependencies are explained in the docs and it behaves differently on different OS'es / compilers. Also, wcChart can be compiled in many flavours - so you need to make sure the flavour matches a) your needs and b) the way you compiled wxWidgets.&lt;br /&gt;
&lt;br /&gt;
==== Q: My simple C++ program throws up lots of errors - what is going on? ====&lt;br /&gt;
&lt;br /&gt;
If you have a C++ program like this:&lt;br /&gt;
&lt;br /&gt;
  #include &amp;lt;iostream&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;hello world\n&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
and when you compile it you get errors like this:&lt;br /&gt;
&lt;br /&gt;
  fatal error: iostream: No such file or directory&lt;br /&gt;
&lt;br /&gt;
then you have probably given your source file a .c extension. If you do that, the GCC compiler (and others) will probably attempt to compile the file as a C program, not as C++. You should always give your C++ source files the extension .cpp to make sure the compiler handles them correctly.&lt;br /&gt;
&lt;br /&gt;
==== Q: I imported a MSVCToolkit project/workspace, but Code::Blocks insists on trying to use GCC. What's wrong? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' A little documentation problem ^^;. The &amp;quot;default compiler&amp;quot; is usually GCC, so when you imported it with &amp;quot;the default compiler&amp;quot;, you told it to use GCC. To fix this situation, go to &amp;quot;Project&amp;quot;, &amp;quot;Build Options&amp;quot; and select VC++ Toolkit as your compiler.&lt;br /&gt;
&lt;br /&gt;
Another possibility is to put the Microsoft compiler as the default one.  To do this, choose '''''Settings - Compiler''''', choose the Microsoft compiler in the '''''Selected Compiler''''' section (top of dialog box) and press the '''''Set as default''''' button.&lt;br /&gt;
&lt;br /&gt;
From now onwards, for all new projects the Microsoft compiler will be taken by default.&lt;br /&gt;
&lt;br /&gt;
==== Q: When compiling a wxWidgets project, I get several &amp;quot;variable 'vtable for xxxx' can't be auto-imported&amp;quot;. What's wrong? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' You need to add WXUSINGDLL in &amp;quot;Project-&amp;gt;Build options-&amp;gt;Compiler #defines&amp;quot; and rebuild your project (or create a new project and use the &amp;quot;Using wxWidgets DLL&amp;quot; project option which adds &amp;quot;-DWXUSINGDLL&amp;quot; to Project-&amp;gt;Build options-&amp;gt;Other options).&lt;br /&gt;
Other errors with the same resolution are:&lt;br /&gt;
'unresolved external symbol &amp;quot;char const * const wxEmptyString&amp;quot; (?wxEmptyString@@3PBDB)' or similar.&lt;br /&gt;
If you were using 1.0-finalbeta and were trying to build a statically linked wxWidgets project, the cause of the problem was some faulty templates. But that's fixed now.&lt;br /&gt;
&lt;br /&gt;
==== Q: I can't compile a multithreaded app with VC Toolkit! Where are the libraries? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Sorry, no fix for your problem...&lt;br /&gt;
&lt;br /&gt;
Your problem doesn't come from CodeBlocks. It exists, because the free VC toolkit (VCTK) doesn't provide all the libraries and tools which come with Visual C++ (VC) which isn't free, unfortunately.&lt;br /&gt;
&lt;br /&gt;
Try buying a full-fledged VC++, or even better, download [http://www.mingw.org/ MinGW]&lt;br /&gt;
&lt;br /&gt;
The libraries that can be obtained free of charge are:&lt;br /&gt;
&lt;br /&gt;
Paths:&lt;br /&gt;
 (VCT3) Visual C++ Toolkit 2003 - C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib&lt;br /&gt;
 (PSDK) Platform SDK - C:\Program Files\Microsoft Platform SDK\Lib&lt;br /&gt;
 (NSDK) .NET 1.1 SDK - C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib&lt;br /&gt;
&lt;br /&gt;
C runtime libs:&lt;br /&gt;
 LIBC.LIB 	Single-threaded, static link                                          (VCT3, NSDK)&lt;br /&gt;
 LIBCMT.LIB 	Multithreaded, static link                                            (VCT3, NSDK)&lt;br /&gt;
 MSVCRT.LIB 	Multithreaded, dynamic link (import library for MSVCR71.DLL)          (NSDK)&lt;br /&gt;
 LIBCD.LIB 	Single-threaded, static link (debug)                                  (VCT3, NSDK)&lt;br /&gt;
 LIBCMTD.LIB 	Multithreaded, static link (debug)                                    (NSDK)&lt;br /&gt;
 MSVCRTD.LIB 	Multithreaded, dynamic link (import library for MSVCR71D.DLL) (debug) (NSDK)&lt;br /&gt;
&lt;br /&gt;
C++ libs:&lt;br /&gt;
 LIBCP.LIB 	Single-threaded, static link                                          (VCT3, PSDK)&lt;br /&gt;
 LIBCPMT.LIB 	Multithreaded, static link                                            (VCT3)&lt;br /&gt;
 MSVCPRT.LIB 	Multithreaded, dynamic link (import library for MSVCP71.dll)          (none)&lt;br /&gt;
 LIBCPD.LIB 	Single-threaded, static link (debug)                                  (VCT3)&lt;br /&gt;
 LIBCPMTD.LIB 	Multithreaded, static link (debug)                                    (none)&lt;br /&gt;
 MSVCPRTD.LIB 	Multithreaded, dynamic link (import library for MSVCP71D.DLL) (debug) (none)&lt;br /&gt;
&lt;br /&gt;
Try setting the library linker directories to:&lt;br /&gt;
 C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib&lt;br /&gt;
 C:\Program Files\Microsoft Platform SDK\Lib&lt;br /&gt;
 C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib&lt;br /&gt;
in that order.&lt;br /&gt;
&lt;br /&gt;
The ones listed as (none) above are actually present in the IA64 and AMD64 subdirectories of the PSDK lib directory.  Not sure if these would work on 32-bit windows, however, they may if they are&lt;br /&gt;
meant to work in 32-bit compatibility mode on the 64-bit processors.  Worth a try.  Otherwise, you&lt;br /&gt;
can link statically to the C++ library instead of using MSVCP71.dll.  If you really want to link against MSVCP71.dll you can try to create MSVCP71.LIB from the dll using lib.exe and sed.  Search google for &amp;quot;exports.sed&amp;quot; for detailed steps.&lt;br /&gt;
&lt;br /&gt;
See also: [http://wiki.tcl.tk/2435 tclsh script to extract import .lib from (any?) DLL (MinGW)]&lt;br /&gt;
&lt;br /&gt;
See also: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_c_run.2d.time_libraries.asp&lt;br /&gt;
&lt;br /&gt;
See also: http://sapdb.2scale.net/moin.cgi/MS_20C_2b_2b_20Toolkit&lt;br /&gt;
&lt;br /&gt;
==== Q: I get this error when compiling: Symbol &amp;quot;isascii&amp;quot; was not found in &amp;quot;codeblocks.dll&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Make sure you didn't mix up the MSVC headers or libs with the MinGW ones.&lt;br /&gt;
&lt;br /&gt;
==== Q: My build fails with multiple ''undefined reference'' errors? ====&lt;br /&gt;
&lt;br /&gt;
''Example:''&lt;br /&gt;
 undefined reference to `WSACleanup@8&lt;br /&gt;
 undefined reference to `WSACleanup@0&lt;br /&gt;
&lt;br /&gt;
'''A:''' Most of the time it is because the required library is not linked with your project. Go to ''Project-&amp;gt;Build options...-&amp;gt;Linker settings (tab)'' and add the required library or libraries.&lt;br /&gt;
&lt;br /&gt;
If the error includes a line number, it is likely that this is a problem with your code. Track down down your function declarations and implementations. Ensure they all match up, are spelled correctly, and have the correct scope resolution.&lt;br /&gt;
&lt;br /&gt;
''VERY'' often you can get help by just googling for the name of the undefined reference, for this example its &amp;quot;WSACleanup&amp;quot;. Usually one of the first links is the SDK documentation, like [http://msdn.microsoft.com/en-us/library/windows/desktop/ms741549%28v=vs.85%29.aspx this from MSDN for WSACleanup]. You'll find there a lot useful information, including what libraries you need to link against, as for the exsample:&lt;br /&gt;
'''Requirements'''&lt;br /&gt;
* Minimum supported client: Windows 2000 Professional&lt;br /&gt;
* Minimum supported server: Windows 2000 Server&lt;br /&gt;
* Header: '''Winsock2.h'''&lt;br /&gt;
* Library: '''Ws2_32'''.lib&lt;br /&gt;
* DLL: '''Ws2_32.dll'''&lt;br /&gt;
The header file '''Winsock2.h''' you need to include in your sources. Most likely you have done that already because otherwise you would have gotten a compiler error unable to find the function declaration. The library you need to link against, you can remove any prefix like &amp;quot;lib&amp;quot; and the file extension like &amp;quot;.lib&amp;quot;, &amp;quot;.a&amp;quot; or &amp;quot;.so&amp;quot; - so just type &amp;quot;'''Ws2_32'''&amp;quot; in the linker options. Also make sure you have added the path to that library in the linker include path's options, otherwise the linker will complain that it cannot find that library you want to link against. You also know, that you should distribute '''Ws2_32.dll''' for the runtime version of you app, luckily this one usually ships with Windows anyways, so no need to do something here.&lt;br /&gt;
&lt;br /&gt;
==== Q: My build fails in the compile/link/run step with a ''Permission denied'' error? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' There are several possible causes for this:&lt;br /&gt;
&lt;br /&gt;
# The output directory does not have read/write access.&lt;br /&gt;
#* Either change control settings on the output directory, or move the project to different location.&lt;br /&gt;
# A previous instance of the executable failed to terminate properly.&lt;br /&gt;
#* Open your system's equivalent of Process/Task Manager, search the list for the name of the executable Code::Blocks is trying to output, and terminate it.&lt;br /&gt;
#* Logging off or rebooting will achieve the same effect.&lt;br /&gt;
# The executable is open.&lt;br /&gt;
#* If the executable is open in a hex-editor or actively being run, close it.&lt;br /&gt;
# Security software is interfering.&lt;br /&gt;
#* The target file is locked while an antivirus programming is scanning it; either wait a few seconds for the antivirus scan to finish, set an exception in the antivirus settings, or (temporarily) disable the antivirus program.&lt;br /&gt;
#* Firewalls with very strict settings sometimes block execution; try reducing the firewall's settings or adding an exception.&lt;br /&gt;
#* Switching security software may have left traces behind that are interfering; hunt down the remnants of the old antivirus/firewall software and remove them.&lt;br /&gt;
# The file/library cannot be found.&lt;br /&gt;
#* Double check all of the compiler and linker [[FAQ-Compiling (general)#Q: I would like to compile a project using some non-standard libraries. How can I indicate to CodeBlocks that these libraries and include files exist?|search directories]] (including any [[Global compiler variables|variables]] they may be using) are properly setup.&lt;br /&gt;
# Code::Blocks was improperly installed.&lt;br /&gt;
#* Mixing binaries from a stable release and a nightly build (or even two different nightly builds) is highly likely to cause a slew of problems; [[Installing Code::Blocks|reinstall Code::Blocks]] in an empty directory.&lt;br /&gt;
# Multiple installed compilers are interfering with each other.&lt;br /&gt;
#* If they are not required to keep, completely remove all but the most used compiler.&lt;br /&gt;
#* If several compilers are required, ensure that '''none''' of them are in the ''system'' path (this is so that Code::Blocks will be able to manage all paths).&lt;br /&gt;
#* Also, do not place any compilers in their default installation path (for example &amp;lt;tt&amp;gt;C:\MinGW&amp;lt;/tt&amp;gt;), as some compilers are hard-coded to look for headers in a default path ''before'' searching their own respective directories.&lt;br /&gt;
# On windows 7, the service &amp;quot;Application Experience&amp;quot; is not running [http://stackoverflow.com/questions/7655471/ld-exe-cannot-open-output-file-permission-denied#answer-7904469 as explained on stackoverflow].&lt;br /&gt;
See also: [/index.php/topic,15047.0.html Permission denied forums discussion]&lt;br /&gt;
&lt;br /&gt;
==== Q: My build fails to link due to ''multiple definition of xyz'' errors? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' GCC 4.6.1 mingw target (Windows) is known to occasionally (and erroneously) report this if link-time optimization (&amp;lt;tt&amp;gt;-flto&amp;lt;/tt&amp;gt;) is used.&lt;br /&gt;
&lt;br /&gt;
First, of course, check that no token has been defined multiple times. If the source code is clean, and yet the errors persist, adding linker switch (''Project-&amp;gt;Build options...-&amp;gt;Linker settings (tab)'')&lt;br /&gt;
 -Wl,--allow-multiple-definition&lt;br /&gt;
will enable the code to link.&lt;br /&gt;
&lt;br /&gt;
See also: [http://sourceware.org/bugzilla/show_bug.cgi?id=12762 Bug 12762]&lt;br /&gt;
&lt;br /&gt;
==== Q: How can I change the language of the compiler (gcc) output to english? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Codeblocks 12.11 or higher: Settings-&amp;gt;Environment-&amp;gt;Environment Variables. Add &amp;quot;LC_ALL&amp;quot; with value &amp;quot;C&amp;quot;. -&amp;gt;Set Now -&amp;gt; Ok&lt;br /&gt;
&lt;br /&gt;
Since a few releases gcc is localized. This can make difficult to find (google ;) ) solutions for specific problems. With this setting the output is again in english.&lt;br /&gt;
&lt;br /&gt;
!! this can break displaying of non-aschii characters so you can also use LC_ALL = en_US.utf8 (/index.php/topic,17579.msg120613.html#msg120613)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Return to '''[[FAQ]]'''.&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=FAQ-Compiling_(general)&amp;diff=7685</id>
		<title>FAQ-Compiling (general)</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=FAQ-Compiling_(general)&amp;diff=7685"/>
		<updated>2013-11-06T13:34:52Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: Add more detail to find the full build log&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Documentation]]&lt;br /&gt;
__TOC__&lt;br /&gt;
Return to '''[[FAQ]]'''.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Q: What compiler can I use with Code::Blocks? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Code::Blocks philosophy is to be able to use any compiler on earth! Well, almost.&lt;br /&gt;
&lt;br /&gt;
As a matter of fact it largely depends on the used compiler plugin. Some provided with the default Code::Blocks installation are GNU GCC (MinGW/Cygwin), MS Visual C++ Free Toolkit 2003, Borland's C++ Compiler 5.5, DigitalMars Free Compiler., OpenWatcom, Small Device C Compiler (SDCC) and others.&lt;br /&gt;
&lt;br /&gt;
==== Q: My project should be compiled with a custom makefile. Is it possible with Code::Blocks? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Yes, you can. You need to change one settings with Code::Blocks 8.02:&lt;br /&gt;
&lt;br /&gt;
In your project's Properties, check &amp;quot;This is a custom makefile&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
And that's it! :)&lt;br /&gt;
&lt;br /&gt;
==== Q: I have downloaded MS VC++ Toolkit 2003 for a compiler. How do I tell Code::Blocks that it is my compiler? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Click on &amp;quot;Project/Build options&amp;quot; and select the compiler you want for your project/target.&lt;br /&gt;
&lt;br /&gt;
==== Q: Microsoft calls MSVCRT.DLL a &amp;quot;Known DLL.&amp;quot; How do I know if I can/should use it? ====&lt;br /&gt;
&lt;br /&gt;
Microsoft does not clearly describe what [http://msdn2.microsoft.com/en-us/library/abx4dbyh.aspx 'Known DLL'] means. A [http://www.zlib.net/DLL_FAQ.txt zLib FAQ entry] makes it much more clear. The short answer is that MSVCRT.DLL is a protected system component and to preserve system integrity it cannot be updated by any end user product installers but may be updated from time to time by system updates. If it works use it. If it doesn't you'll need use a non protected library such as MSVCR70 or MSVCR80 which not only can be updated but private versions can be installed. A small and simple C program is likely to work just fine with MSVCRT.DLL. A large and complex C++ program is more likely to need the additional functionality of MSVCR.&lt;br /&gt;
&lt;br /&gt;
The MSVCRT.LIB that ships with 32 bit compiler Visual C++ Toolkit 2003 dynamically links to MSVCR71.DLL which is not present in a freshly installed Windows XP system. MSVCR only appears after some software package that needs it such as [http://www.adobe.com/ Adobe Acrobat Reader] is installed. This means that programs that depend on MSVCR must redistribute it or risk not working on a substantial percentage of systems for reasons not obvious to either the affected end users or the program supplier. &lt;br /&gt;
&lt;br /&gt;
For projects that can safely use MSVCRT and where it is impractical to redistribute MSVCR, a Win32 MSVCRT.LIB that links to MSVCRT.DLL is available in any [http://www.microsoft.com/whdc/devtools/ddk/default.mspx Device Driver Kit]. It is best to preserve the MSVCRT.LIB provided by the compiler and alter the name of the MSVCRT.LIB extracted from a DDK. List your newly named MSVCRTxx in the lib. If you use MSVCRT.LIB from the Windows 2003 DDK you may encounter the link '''error LNK2001: unresolved external symbol ___security_cookie'''. This can be solved by switching to the MSVCRT.LIB in the Windows XP DDK or by linking '''bufferoverflowU.lib''' found in the Windows SDK. A Win64 MSVCRT.LIB that links to MSVCRT.DLL is available in the Windows SDK or Platform [http://www.microsoft.com/downloads/details.aspx?FamilyId=E15438AC-60BE-41BD-AA14-7F1E0F19CA0D&amp;amp;displaylang=en PSDK]. &lt;br /&gt;
&lt;br /&gt;
To prevent problems it is recommended to include both /MD and /NODEFAULTLIB:MSVCRT switches so that problems come up at link time instead of random crashes at run time. Be sure to load your programs into [http://www.dependencywalker.com/ Dependancy Walker] to ensure that functions aren't being linked into both MSVCRxx.DLL and MSVCRT.DLL. It is essential that malloc, calloc, realloc, free, and related memory allocation functions all import from the same DLL. &lt;br /&gt;
&lt;br /&gt;
Source: [http://wiki.tcl.tk/11431 TCL Wiki]&lt;br /&gt;
&lt;br /&gt;
==== Q: How can I use a DLL without DEF or LIB files? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' I tried to find a solution, and the following script solved the problem for me. I used a cygwin environment for ''tclsh'' and ''sed'', but the MinGW tools for ''objdump'' and ''dlltool''. See here [http://wiki.tcl.tk/2435 tclsh script to extract import .lib from (any?) DLL (MinGW)]&lt;br /&gt;
&lt;br /&gt;
TODO: Someone might add some informations about problems&lt;br /&gt;
&lt;br /&gt;
Request: Is MinGW or Code::Blocks able to support automatic generation of import libraries ?&lt;br /&gt;
&lt;br /&gt;
See also: http://www.mingw.org/wiki/CreateImportLibraries&lt;br /&gt;
&lt;br /&gt;
See also: http://wyw.dcweb.cn/stdcall.htm&lt;br /&gt;
&lt;br /&gt;
==== Q: Where are the libraries for the OpenGL, Ogre3D, SDL, QT, wxWidgets etc. projects? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' They're not bundled. The templates were provided for your convenience, but you need to download the libraries on your own.&lt;br /&gt;
In common terms, &amp;quot;batteries not included&amp;quot; :)&lt;br /&gt;
&lt;br /&gt;
==== Q: Is it possible to use Visual C++ 6.0 with Code::Blocks? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Yes. See [[Integrating Microsoft Visual C 6 with Code::Blocks IDE]] for a detailed description on using VC++ 6.0 with Code::Blocks.&lt;br /&gt;
&lt;br /&gt;
==== Q: I would like to compile a project using some non-standard libraries. How can I indicate to CodeBlocks that these libraries and include files exist? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' You can specify them for your global environment or just for your project.&lt;br /&gt;
&lt;br /&gt;
For global environment :&amp;lt;br /&amp;gt;&lt;br /&gt;
- Menu &amp;lt;i&amp;gt;Settings/Compiler and debugger&amp;lt;/i&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
- In the &amp;lt;i&amp;gt;Global compiler settings&amp;lt;/i&amp;gt;, select the directories tab&amp;lt;br /&amp;gt;&lt;br /&gt;
- Add the required paths for compiler and linker.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
For your project :&amp;lt;br /&amp;gt;&lt;br /&gt;
- Right click on the project then select &amp;lt;i&amp;gt;Build options&amp;lt;/i&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
- Select the directories tab&amp;lt;br /&amp;gt;&lt;br /&gt;
- Add the required paths for compiler and linker.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Add your specific libraries in the linker tab.&amp;lt;br /&amp;gt;&lt;br /&gt;
- Pay attention to project settings and target settings.&lt;br /&gt;
==== Q: How do I use both Debug and Release builds of wx libraries? ====&lt;br /&gt;
'''A:''' I would use the default method of doing it and the default folder naming.&lt;br /&gt;
&lt;br /&gt;
Using these C::B custom varibles&lt;br /&gt;
 WX_SUFFIX=&amp;quot;&amp;quot;  // ANSI Release&lt;br /&gt;
 WX_SUFFIX=&amp;quot;d&amp;quot;  // ANSI Debug&lt;br /&gt;
 WX_SUFFIX=&amp;quot;u&amp;quot;  // Unicode Release&lt;br /&gt;
 WX_SUFFIX=&amp;quot;ud&amp;quot;  // Unicode debug&lt;br /&gt;
&lt;br /&gt;
I use WX_CFG when I am using a special configuration&lt;br /&gt;
WX_CFG=&amp;quot;rc3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Remember, the CodeBlocks globel variable WX needs to point to the wxWidgets folder.&lt;br /&gt;
&lt;br /&gt;
Example minGW build command for &amp;quot;Unicode debug&amp;quot; 2.8.0 RC3&lt;br /&gt;
&lt;br /&gt;
 mingw32-make -f makefile.gcc VENDOR=rc3 CFG=rc3 USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=debug   UNICODE=1&lt;br /&gt;
&lt;br /&gt;
&amp;quot;VENDOR=&amp;quot; just puts rc3 in the DLL name; &amp;quot;CFG=&amp;quot; sets which folder the DLL is placed in. In this case in lib\gcc_dllrc3&lt;br /&gt;
&lt;br /&gt;
Before using CFG in the mingw32-make build you need to  do one prior wxWidget build without using it; else the build errors out. (See note below.)&lt;br /&gt;
&lt;br /&gt;
&amp;quot;__WXDEBUG__&amp;quot; must be defined (in the codeblocks project setting) if you wish to link against the  debug version of wxWidgets DLL. Else you will get a runtime error, when you try to run your project output.&lt;br /&gt;
&lt;br /&gt;
Contributed by Tim S&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
*I have never gotten the following command to work&lt;br /&gt;
  mingw32-make -f makefile.gcc VENDOR=rc3 CFG=rc3 USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=debug   UNICODE=1&lt;br /&gt;
&lt;br /&gt;
*unless I have first run this command on the same wxWidgets folders&lt;br /&gt;
  mingw32-make -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=debug   UNICODE=1&lt;br /&gt;
&lt;br /&gt;
*I am guessing that the build without the CFG creates a file or directory needed by the build with the CFG.&lt;br /&gt;
&lt;br /&gt;
==== Q: How do I add version information to windows executables and dll's? ====&lt;br /&gt;
'''A:''' You need to create a resource file with the extension .rc and write the version info there. Then add that file to the Code::Blocks project you are working on.&lt;br /&gt;
&lt;br /&gt;
Sample content of a resource file that you can use and modify for your needs:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US&lt;br /&gt;
&lt;br /&gt;
VS_VERSION_INFO    VERSIONINFO&lt;br /&gt;
  FILEVERSION      1,0,0,1&lt;br /&gt;
  PRODUCTVERSION   1,0,0,1&lt;br /&gt;
  FILEFLAGSMASK    0x3fL // VS_FFI_FILEFLAGSMASK&lt;br /&gt;
#ifdef _DEBUG&lt;br /&gt;
  FILEFLAGS        0x1L  // VS_FF_DEBUG|VS_FF_PRIVATEBUILD|VS_FF_PRERELEASE&lt;br /&gt;
#else&lt;br /&gt;
  FILEFLAGS        0x0L  // final version&lt;br /&gt;
#endif&lt;br /&gt;
  FILEOS           VOS_NT_WINDOWS32&lt;br /&gt;
  FILETYPE         VFT_APP&lt;br /&gt;
  FILESUBTYPE      VFT2_UNKNOWN // not used&lt;br /&gt;
{&lt;br /&gt;
  BLOCK &amp;quot;StringFileInfo&amp;quot;&lt;br /&gt;
  {&lt;br /&gt;
    BLOCK &amp;quot;040904E4&amp;quot; // Lang=US English, CharSet=Windows Multilingual&lt;br /&gt;
    {&lt;br /&gt;
      VALUE &amp;quot;Build&amp;quot;,            &amp;quot;August 2007\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;Comments&amp;quot;,         &amp;quot;Free for personal use only.\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;CompanyName&amp;quot;,      &amp;quot;Fake Company\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;Developer&amp;quot;,        &amp;quot;The Developer\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;FileDescription&amp;quot;,  &amp;quot;Application implementing something\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;FileVersion&amp;quot;,      &amp;quot;1.0.000\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;InternalName&amp;quot;,     &amp;quot;AppInternalName\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;LegalCopyright&amp;quot;,   &amp;quot;Copyright (C) 2007 Fake Company\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;LegalTrademarks&amp;quot;,  &amp;quot;All rights reserved.\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;OriginalFilename&amp;quot;, &amp;quot;TheEXE.exe\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;PrivateBuild&amp;quot;,     &amp;quot;\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;ProductName&amp;quot;,      &amp;quot;The EXE\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;ProductVersion&amp;quot;,   &amp;quot;1.0.000\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;SpecialBuild&amp;quot;,     &amp;quot;\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;Support&amp;quot;,          &amp;quot;TheEXE at fake-domain.com\0&amp;quot;&lt;br /&gt;
      VALUE &amp;quot;Users&amp;quot;,            &amp;quot;Unlimited.\0&amp;quot;&lt;br /&gt;
    } // BLOCK &amp;quot;040904E4&amp;quot;&lt;br /&gt;
  } // BLOCK &amp;quot;StringFileInfo&amp;quot;&lt;br /&gt;
  BLOCK &amp;quot;VarFileInfo&amp;quot;&lt;br /&gt;
  {&lt;br /&gt;
    VALUE &amp;quot;Translation&amp;quot;, 0x409, 1252 // 1252 = 0x04E4&lt;br /&gt;
  } // BLOCK &amp;quot;VarFileInfo&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also you can use the the [[AutoVersioning plugin]] to assist you on the generation of version information. For documentation of the syntax and values used on windows resource files, you can visit the following websites:&lt;br /&gt;
*http://msdn2.microsoft.com/en-us/library/aa380599.aspx&lt;br /&gt;
*http://www.cygwin.com/cygwin-ug-net/windres.html&lt;br /&gt;
&lt;br /&gt;
==== Q: Code::Blocks does not force relink if the library is changed? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Open ''Project-&amp;gt;Properties...-&amp;gt;Build targets (tab)'' and select the executable.  Click ''Dependencies...'' and add the name of the library (including its relative path) to ''External dependency files''. Also see [[The build process of Code::Blocks#Using project dependencies|inter-project dependencies]].&lt;br /&gt;
&lt;br /&gt;
''Example:'' &amp;lt;tt&amp;gt;output\myLibrary\libdostuff.a&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Q: How do I report a compilation problem on the forums? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Try building the project from command line. If the same error comes up, it is a problem with either the source file, the compiler, or the compiler setup. If this is the case, you are unlikely to receive support for it on the Code::Blocks forums, however, [[FAQ-Compiling (errors)#Q: How do I troubleshoot a compiler problem?|How do I troubleshoot a compiler problem?]] may help.&lt;br /&gt;
&lt;br /&gt;
If it works fine building from command line, it is either a problem with your project, Code::Blocks' setup, or possibly an actual bug. When posting this problem, include the name of your compiler, operating system, Code::Blocks version, compiler log (go to ''Settings-&amp;gt;Compiler and debugger...-&amp;gt;Build options (tab)'' and check ''Save build log'' and ''Always output the full command line''), and, if it caused Code::Blocks to crash, the &amp;lt;tt&amp;gt;codeblocks.RPT&amp;lt;/tt&amp;gt; file (located in the Code::Blocks installation directory).&lt;br /&gt;
&lt;br /&gt;
''Template: Paste the following template into your post, editing the relevant sections.''&lt;br /&gt;
 I am running Code::Blocks version &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''Code::BlocksVersionNumber''&amp;lt;/span&amp;gt; on &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''MyOperatingSystem''&amp;lt;/span&amp;gt;&lt;br /&gt;
 (version &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''OperatingSystemVersionNumber''&amp;lt;/span&amp;gt;). The compiler I use is &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''CompilerName''&amp;lt;/span&amp;gt;&lt;br /&gt;
 version &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''CompilerVersionNumber''&amp;lt;/span&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
 When I ...&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''Steps to reproduce problem.''&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''Description of problem.''&amp;lt;/span&amp;gt;&lt;br /&gt;
 ... happens.&lt;br /&gt;
 &lt;br /&gt;
 Build log:&lt;br /&gt;
 [code]&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''Paste &amp;lt;span style=&amp;quot;color:FireBrick&amp;quot;&amp;gt;'''full'''&amp;lt;/span&amp;gt; build log here. (It is found in the 'Build log' tab). Please make always a 'rebuild' or a 'clean' and 'build' before you copy the build log. ''&amp;lt;/span&amp;gt;&lt;br /&gt;
 [/code]&lt;br /&gt;
 &lt;br /&gt;
 Crash report:&lt;br /&gt;
 [code]&lt;br /&gt;
 ''&amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;Paste the contents of&amp;lt;/span&amp;gt;'' &amp;lt;span style=&amp;quot;color:MidnightBlue&amp;quot;&amp;gt;codeblocks.RPT&amp;lt;/span&amp;gt; ''&amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;here&amp;lt;/span&amp;gt; (if Code::Blocks crashed).''&lt;br /&gt;
 [/code]&lt;br /&gt;
 &lt;br /&gt;
     ''(Although the following is not necessary, showing that you''&lt;br /&gt;
      ''have tried increases the probability of a response.)''&lt;br /&gt;
 I have already tried ...&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:DarkRed&amp;quot;&amp;gt;''List of attempted solutions.''&amp;lt;/span&amp;gt;&lt;br /&gt;
 ... but none of them worked.&lt;br /&gt;
&lt;br /&gt;
==== Q: All of the Build related options are grayed out? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Code::Blocks checks the file extension for individual files before allowing them to be compiled. Save your file with the correct file extension (&amp;lt;tt&amp;gt;*.c&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;*.cpp&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
More often it is useful to [[Creating a new project|create a project]] so that Code::Blocks can manage the entire build.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Return to '''[[FAQ]]'''.&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Installing_Code::Blocks_from_source_on_Windows&amp;diff=7639</id>
		<title>Installing Code::Blocks from source on Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Installing_Code::Blocks_from_source_on_Windows&amp;diff=7639"/>
		<updated>2013-07-21T15:23:07Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: added a link to the alternative source download....&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Installing Code::Blocks]]&lt;br /&gt;
[[Category:Installing Code::Blocks from source]]&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
=== Note for RC2 users ===&lt;br /&gt;
&lt;br /&gt;
The older Code::Blocks RC2 does not support global compiler variables which were added after RC2 was released and is unable to read project files generated with post-RC2 versions.&lt;br /&gt;
To build Code::Blocks, you need a post-RC2 build, such as ''8.02'' or any of the ''nightly builds'' obtainable by [/index.php?board=20.0 searching the forum].&lt;br /&gt;
&lt;br /&gt;
=== MinGW compiler ===&lt;br /&gt;
&lt;br /&gt;
At the present time, Code::Blocks only compiles successfully with the MinGW compiler (or any other gcc for that matter). You will need a complete, working [[MinGW installation]] or [http://www.tdragon.net/recentgcc/ TDM-MinGW package]. &lt;br /&gt;
&lt;br /&gt;
'''Do not''' use the barebones MinGW with GCC 4.5.1 as you'll run (with this specific version) into [http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43601 a linker bug] (which happened to me on Vista SP1 32-bit on 2011-02-28); the solution is to use the TDM-GCC 4.5.1 package, or later.&lt;br /&gt;
&lt;br /&gt;
=== wxWidgets ===&lt;br /&gt;
&lt;br /&gt;
[http://www.wxwidgets.org/ wxWidgets.org]&lt;br /&gt;
&lt;br /&gt;
Code::Blocks uses&lt;br /&gt;
* since 02 April 2011 wxWidgets 2.8.12 &amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.12.zip wxMSW-2.8.12.zip]&lt;br /&gt;
&lt;br /&gt;
* since 28 March 2009 wxWidgets 2.8.10 &amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.10.zip wxMSW-2.8.10.zip]&lt;br /&gt;
&lt;br /&gt;
* since 18 October 2008 wxWidgets 2.8.9 &amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.9.zip wxMSW-2.8.9.zip]&lt;br /&gt;
&lt;br /&gt;
* since 19 July 2008 wxWidgets 2.8.8 &amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.8.zip wxMSW-2.8.8.zip]&lt;br /&gt;
&lt;br /&gt;
* since 28 November 2007 wxWidgets 2.8.7 &amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.7.zip wxMSW-2.8.7.zip]&lt;br /&gt;
&lt;br /&gt;
* since November 2007 wxWidgets 2.8.6 &amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.6.zip wxMSW-2.8.6.zip]&lt;br /&gt;
&lt;br /&gt;
* since May 2007 wxWidgets 2.8.4&amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.4.zip wxMSW-2.8.4.zip]&lt;br /&gt;
&lt;br /&gt;
For latest infos check forum: [/index.php?topic=3299.0 Important changes to the nightly builds]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You do ''not'' need MSYS (''in fact, if you have MSYS, make sure it is not in your PATH when building wxWidgets'').&lt;br /&gt;
&lt;br /&gt;
You can get the c::b source from svn or download it directly from http://sourceforge.net/p/codeblocks/code -&amp;gt; &amp;quot;Download Snapshot&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== SVN client ===&lt;br /&gt;
&lt;br /&gt;
In order to check out the Code::Blocks sources you will need a SVN client.&lt;br /&gt;
For convenience, it is recommended that you install [http://tortoisesvn.net/downloads TortoiseSVN] on your machine, as this is a lot more comfortable. However, if you get a bad feeling when some program is messing with your Explorer menu, then you can use the [http://subversion.tigris.org/project_packages.html svn command-line client] equally well.&lt;br /&gt;
&lt;br /&gt;
It is generally a good idea to install the command-line client (and adding it to PATH) even if you use TortoiseSVN for convenience. The &amp;lt;tt&amp;gt;autorevision&amp;lt;/tt&amp;gt; tool which is used during the build of Code::Blocks makes use of the &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; binary if it is available. This is preferable to the manual parsing of the entries file that is used as fall-back.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please do note that working copies checked out with the 1.4 version of Subversion are no longer compatible with earlier versions (Subversion will transparently update existing repositories).&lt;br /&gt;
&lt;br /&gt;
The built-in fall-back mechanism in &amp;lt;tt&amp;gt;autorevision&amp;lt;/tt&amp;gt; has been updated to the new 1.4 format and will no longer work with the old format.&amp;lt;br&amp;gt;&lt;br /&gt;
Therefore, if you use a Subversion client from the 1.0-1.3 line, you ''must'' put the command line tool into &amp;lt;tt&amp;gt;PATH&amp;lt;/tt&amp;gt; for a successful build.&amp;lt;br&amp;gt;&lt;br /&gt;
If you use Subversion 1.4, then it is good practice nevertheless, but you can do without, too.&lt;br /&gt;
&lt;br /&gt;
=== svn.exe ===&lt;br /&gt;
If you want to show the SVN number in your code::blocks dialog box.&lt;br /&gt;
&lt;br /&gt;
[[Image:Svn number.png|300*300px]]&lt;br /&gt;
&lt;br /&gt;
You should also let svn.exe exist in the PATH of your windows system.&lt;br /&gt;
A command line SVN package can be download here [http://www.open.collab.net/downloads/subversion/ CollabNet Subversion Command-Line Client v1.6 (for Windows)].&lt;br /&gt;
&lt;br /&gt;
=== zip.exe ===&lt;br /&gt;
&lt;br /&gt;
You'll also need a working 'zip' program.&lt;br /&gt;
If you have the version listed on our [[MinGW installation#Other developer tools|tools page]], you'll be fine.&lt;br /&gt;
&lt;br /&gt;
The zip program coming with cygwin will ''not'' work properly. You do ''not'' need WinZip.&lt;br /&gt;
&lt;br /&gt;
Make sure the zip binary is in your PATH so the &amp;lt;tt&amp;gt;update.bat&amp;lt;/tt&amp;gt; script will be able to find it (alternatively, you can edit the batch file, setting the ZIPCMD variable to something else).&lt;br /&gt;
&lt;br /&gt;
The easiest way is to put zip.exe into &amp;lt;tt&amp;gt;bin&amp;lt;/tt&amp;gt; inside your MinGW installation directory (that folder is normally in the path).&lt;br /&gt;
&lt;br /&gt;
=== Code::Blocks sources ===&lt;br /&gt;
&lt;br /&gt;
You will also (obviously) need the Code::Blocks sources. &lt;br /&gt;
&lt;br /&gt;
Using ''TortoiseSVN'', make a folder where you want to store the sources, right-click on the folder, and select &amp;quot;SVN Checkout...&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''!! The URL in this image is wrong !!''' Look at the description under the image:&lt;br /&gt;
&lt;br /&gt;
[[Image:Win svn checkout.png]]&lt;br /&gt;
&lt;br /&gt;
In the top box, enter svn://svn.code.sf.net/p/codeblocks/code/trunk and hit the OK button.&lt;br /&gt;
&lt;br /&gt;
Using ''svn'', you have to open a command prompt (&amp;quot;DOS Window&amp;quot;). Make a folder, change directory, and run svn:&lt;br /&gt;
&lt;br /&gt;
 mkdir codeblocks-head&lt;br /&gt;
 cd codeblocks-head&lt;br /&gt;
 svn checkout &amp;lt;nowiki&amp;gt;svn://svn.code.sf.net/p/codeblocks/code/trunk&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Unicode Build ==&lt;br /&gt;
&lt;br /&gt;
=== Compile wxWidgets in Unicode mode ===&lt;br /&gt;
&lt;br /&gt;
After unpacking the zip file to a directory of your choice, open a cmd prompt, and navigate to the folder build/msw inside the wxWidgets folder. Use the following commands to compile wxWidgets:&lt;br /&gt;
&lt;br /&gt;
 set path=c:\mingw\bin;c:\mingw\mingw32\bin&lt;br /&gt;
 mingw32-make -f makefile.gcc SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1  clean&lt;br /&gt;
 mingw32-make -f makefile.gcc SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1&lt;br /&gt;
&lt;br /&gt;
This assumes your MinGW installation is in C:\mingw. Use a different path if you installed MinGW somewhere else.&lt;br /&gt;
&lt;br /&gt;
You will see a lot of warning messages during compilation. Don't worry, this is normal, you are compiling wxWidgets. The build process may take 10-30 minutes, depending on your computer's speed.&lt;br /&gt;
&lt;br /&gt;
If you are using a recent version of MinGW you may find that the object files are too large and that the linker runs out of memory. To fix this problem you need to edit config.gcc so that inline functions are not exported, by modifying the CFLAGS and CXXFLAGS lines to:&lt;br /&gt;
&lt;br /&gt;
  CFLAGS ?= -fno-keep-inline-dllexport&lt;br /&gt;
&lt;br /&gt;
  CXXFLAGS ?= -fno-keep-inline-dllexport&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''remark: If you want to use wxWidgets not only for building Code::Blocks, but also for writing wxWidgets programs, and if you want to use the debugger in those programs, you have to compile a debug build of wxWidgets as well.''&lt;br /&gt;
''Use the same commands as for the release build, but replace &amp;quot;release&amp;quot; by &amp;quot;debug&amp;quot;.''&lt;br /&gt;
&lt;br /&gt;
'''Optional:'''&lt;br /&gt;
&lt;br /&gt;
To reduce the size of your wxWidgets library, you can disable features which are not used by Code::Blocks. However, you should not do this unless you know what you are doing. You have to delete the generated setup.h from lib/gcc_dll/msw/wx before building, because your changes to include/wx/msw will otherwise not be honoured.&lt;br /&gt;
&lt;br /&gt;
=== Compile Code::Blocks ===&lt;br /&gt;
Now, before this step, you have prepared all the stuff to build code::blocks. It's very interesting that we use code::blocks to build code::blocks binaries.&lt;br /&gt;
&lt;br /&gt;
==== Open project====&lt;br /&gt;
Open the project file '''CodeBlocks.cbp'''. &lt;br /&gt;
*You will be prompted to define the global variable $(#wx). Enter the location where you unpacked wxWidgets.&lt;br /&gt;
&lt;br /&gt;
[[Image:Global_variable.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Global_variable2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*You will also be prompted to enter the global variable '''cb_release_type'''. Here you can add compiler optimization or debug-flags. Enter '''-g''' in the '''base''' field.&lt;br /&gt;
&lt;br /&gt;
====Compile project====&lt;br /&gt;
Hit the blue gear and lean back. Compilation may take 3-5 minutes, depending on the speed of your computer.&lt;br /&gt;
&lt;br /&gt;
[[Image:Win build button.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Win build target.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Win build finish.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Copy wxWidgets support DLL====&lt;br /&gt;
After the compilation has finished, copy &amp;lt;tt&amp;gt;lib\gcc_dll\wxmsw28u_gcc_custom.dll&amp;lt;/tt&amp;gt; from the wxWidgets directory to the &amp;lt;tt&amp;gt;src\devel&amp;lt;/tt&amp;gt; directory inside the Code::Blocks source folder (it will also work if you keep a copy of that library in your Windows folder or anywhere in your system path, but this is generally not recommended because you can get into dll hell).&lt;br /&gt;
&lt;br /&gt;
[[Image:Win output folder.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Win copy dll.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Runing script file====&lt;br /&gt;
Run &amp;lt;tt&amp;gt;src\update.bat&amp;lt;/tt&amp;gt; (located in the root source directory). This will pack the resource files and copy libraries and plugins to their correct locations.&lt;br /&gt;
&lt;br /&gt;
[[Image:Win run bat.png]]&lt;br /&gt;
&lt;br /&gt;
The stripped (&amp;quot;production&amp;quot;) executable is found in &amp;lt;tt&amp;gt;output&amp;lt;/tt&amp;gt; folder together with all libraries and data files. If you want a version with debug symbols instead (caution: huge size!), use the one found in the &amp;lt;tt&amp;gt;devel&amp;lt;/tt&amp;gt; folder.&amp;lt;br&amp;gt;&lt;br /&gt;
Congratulations, you own a freshly built version of Code::Blocks!&lt;br /&gt;
&lt;br /&gt;
[[Image:Win final folder.png]]&lt;br /&gt;
&lt;br /&gt;
====Note for future updates====&lt;br /&gt;
Go to the Code::Blocks root directory and run &amp;lt;tt&amp;gt;svn update&amp;lt;/tt&amp;gt; (or use TurtoiseSVN to the same effect).&amp;lt;br/&amp;gt;&lt;br /&gt;
Then open and build the project as described before (and any contrib plugins that you wish to use), and re-run &amp;lt;tt&amp;gt;src\update.bat&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Install Code::Blocks ===&lt;br /&gt;
&lt;br /&gt;
Copy the folder output to where you want Code::Blocks to reside.&lt;br /&gt;
&lt;br /&gt;
=== Compile contributed (or your own) plugins ===&lt;br /&gt;
&lt;br /&gt;
The workspace file '''ContribPlugins.workspace''' contains the project files for all contributed plugins. Open that workspace and compile the plugins which you would like to use (or select &amp;quot;Build Workspace&amp;quot; from the context menu if you want them all).&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Contribute plugin.png]]&lt;br /&gt;
&lt;br /&gt;
When you open the contrib plugins workspace, you will be asked to define the &amp;lt;tt&amp;gt;$(#cb)&amp;lt;/tt&amp;gt; global compiler variable. This is the path that contains the sdk folder normally this is codeblocks\src. The build process uses this information to place the plugins and data files into the correct place. Enter the location of the Code::Blocks sources in the same way as for the &amp;lt;tt&amp;gt;$(#wx)&amp;lt;/tt&amp;gt; variable earlier.&lt;br /&gt;
&lt;br /&gt;
Don't forget to run update.bat again after building the contrib plugins.&lt;br /&gt;
&lt;br /&gt;
== ANSI Build ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f7d9d9; border: 1px solid #000&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== DEPRECATION WARNING: ====&lt;br /&gt;
As of February 2006, the official default build for Code::Blocks is '''Unicode''' (see above). Although ANSI builds are technically possible, we discourage their use unless there is a good reason.&amp;lt;br/&amp;gt;&lt;br /&gt;
''Support for ANSI builds is likely to be dropped after Version 1.0 is out.''&lt;br /&gt;
&lt;br /&gt;
There is hardly any good argument against using a Unicode build if your OS supports Unicode, even if you do not understand any other language than English, as a Unicode version guarantees that it will be able to work with whatever languages you may possibly encounter in the future -- at a very reasonable cost.&lt;br /&gt;
&lt;br /&gt;
However, if you absolutely don't care about Unicode or if you are bound to use Windows 95, then you may want to build an ANSI version nevertheless.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Compile wxWidgets in ANSI mode ====&lt;br /&gt;
&lt;br /&gt;
After unpacking the zip file to a directory of your choice, open a cmd prompt, and navigate to the folder build/msw inside the wxWidgets folder. Use the following commands to compile wxWidgets&lt;br /&gt;
&lt;br /&gt;
 set path=c:\mingw\bin;c:\mingw\mingw32\bin&lt;br /&gt;
 mingw32-make -f makefile.gcc SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=0 clean&lt;br /&gt;
 mingw32-make -f makefile.gcc SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=0&lt;br /&gt;
&lt;br /&gt;
This assumes your MinGW installation is in C:\mingw. Use a different path if you installed MinGW somewhere else.&lt;br /&gt;
&lt;br /&gt;
You will see a lot of warning messages during compilation. Don't worry, this is normal, you are compiling wxWidgets. The build process may take 10-30 minutes, depending on your computer's speed.&lt;br /&gt;
&lt;br /&gt;
'''Optional:'''&lt;br /&gt;
&lt;br /&gt;
To reduce the size of your wxWidgets library, you can disable features which are not used by Code::Blocks. However, you should not do this unless you know what you are doing. You have to delete the generated setup.h from lib/gcc_dll/msw/wx before building, because your changes to include/wx/msw will otherwise not be honoured.&lt;br /&gt;
&lt;br /&gt;
==== Compile Code::Blocks ====&lt;br /&gt;
&lt;br /&gt;
Open the project CodeBlocks.cbp. You will be prompted to define the global variable $(#wx) if you have not used it before. Enter the location where you unpacked wxWidgets.&lt;br /&gt;
&lt;br /&gt;
'''Important:'''  The project file is set to compile an Unicode version of Code::Blocks by default. To make an ANSI build, you have to make the following two changes to build options before compiling:&lt;br /&gt;
1. In the &amp;quot;Compiler&amp;quot; tab, under &amp;quot;#defines&amp;quot;, remove the entry wxUSE_UNICODE.&lt;br /&gt;
2. Under &amp;quot;Custom variables&amp;quot;, set the variable WX_SUFFIX to empty (default value: u).&lt;br /&gt;
&lt;br /&gt;
Hit the blue gear and lean back. Compilation may take 3-5 minutes, depending on the speed of your computer.&lt;br /&gt;
&lt;br /&gt;
After the compilation has finished, copy wxmsw28u_gcc_custom.dll from lib\gcc_dll inside the wxWidgets directory to the devel directory inside the Code::Blocks source folder (it will also work if you keep a copy of that library in your Windows folder or anywhere in your system path, but this is generally not recommended because you can get into [[wikipedia:DLL Hell|dll hell]]).&lt;br /&gt;
Run update.bat (located in the root source directory). This will pack the resource files and copy libraries and plugins to their correct locations.&lt;br /&gt;
The location of executable is src\output in C::B tree. From here you'll not need the nightly build anymore.&lt;br /&gt;
&lt;br /&gt;
One little note for svn updates and rebuilds : just go into the codeblocks root directory and do '''svn update''' (or use Turtoise svn).&lt;br /&gt;
&lt;br /&gt;
Then run the src/output/codeblocks.exe, reload project, build it, reload plugins workspace, build it, quit codeblocks and re-run update.bat. You'll have an up-to-date C::B in 3 minutes !&lt;br /&gt;
&lt;br /&gt;
==== Install Code::Blocks ====&lt;br /&gt;
&lt;br /&gt;
Copy the folder output to where you want Code::Blocks to reside.&lt;br /&gt;
&lt;br /&gt;
==== Compile contributed (or your own) plugins ====&lt;br /&gt;
&lt;br /&gt;
The workspace file ContribPlugins.workspace contains the project files for all contributed plugins. Open that workspace and compile the plugins which you would like to use (or select &amp;quot;Build Workspace&amp;quot; from the context menu if you want them all). Don't forget to run update.bat again after building the contrib plugins.&lt;br /&gt;
&lt;br /&gt;
Note that the Nassi Shneiderman plugin (part of the contrib plugins) has a dependency on [http://www.boost.org boost] which is needed to compile this plugin. Boost does not need to be compiled therefore.&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Installing_Code::Blocks_from_source_on_Windows&amp;diff=7638</id>
		<title>Installing Code::Blocks from source on Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Installing_Code::Blocks_from_source_on_Windows&amp;diff=7638"/>
		<updated>2013-07-21T15:13:03Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: add the cb_release_type to the &amp;quot;open project&amp;quot; chapter&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Installing Code::Blocks]]&lt;br /&gt;
[[Category:Installing Code::Blocks from source]]&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
=== Note for RC2 users ===&lt;br /&gt;
&lt;br /&gt;
The older Code::Blocks RC2 does not support global compiler variables which were added after RC2 was released and is unable to read project files generated with post-RC2 versions.&lt;br /&gt;
To build Code::Blocks, you need a post-RC2 build, such as ''8.02'' or any of the ''nightly builds'' obtainable by [/index.php?board=20.0 searching the forum].&lt;br /&gt;
&lt;br /&gt;
=== MinGW compiler ===&lt;br /&gt;
&lt;br /&gt;
At the present time, Code::Blocks only compiles successfully with the MinGW compiler (or any other gcc for that matter). You will need a complete, working [[MinGW installation]] or [http://www.tdragon.net/recentgcc/ TDM-MinGW package]. &lt;br /&gt;
&lt;br /&gt;
'''Do not''' use the barebones MinGW with GCC 4.5.1 as you'll run (with this specific version) into [http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43601 a linker bug] (which happened to me on Vista SP1 32-bit on 2011-02-28); the solution is to use the TDM-GCC 4.5.1 package, or later.&lt;br /&gt;
&lt;br /&gt;
=== wxWidgets ===&lt;br /&gt;
&lt;br /&gt;
[http://www.wxwidgets.org/ wxWidgets.org]&lt;br /&gt;
&lt;br /&gt;
Code::Blocks uses&lt;br /&gt;
* since 02 April 2011 wxWidgets 2.8.12 &amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.12.zip wxMSW-2.8.12.zip]&lt;br /&gt;
&lt;br /&gt;
* since 28 March 2009 wxWidgets 2.8.10 &amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.10.zip wxMSW-2.8.10.zip]&lt;br /&gt;
&lt;br /&gt;
* since 18 October 2008 wxWidgets 2.8.9 &amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.9.zip wxMSW-2.8.9.zip]&lt;br /&gt;
&lt;br /&gt;
* since 19 July 2008 wxWidgets 2.8.8 &amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.8.zip wxMSW-2.8.8.zip]&lt;br /&gt;
&lt;br /&gt;
* since 28 November 2007 wxWidgets 2.8.7 &amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.7.zip wxMSW-2.8.7.zip]&lt;br /&gt;
&lt;br /&gt;
* since November 2007 wxWidgets 2.8.6 &amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.6.zip wxMSW-2.8.6.zip]&lt;br /&gt;
&lt;br /&gt;
* since May 2007 wxWidgets 2.8.4&amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.4.zip wxMSW-2.8.4.zip]&lt;br /&gt;
&lt;br /&gt;
For latest infos check forum: [/index.php?topic=3299.0 Important changes to the nightly builds]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You do ''not'' need MSYS (''in fact, if you have MSYS, make sure it is not in your PATH when building wxWidgets'').&lt;br /&gt;
&lt;br /&gt;
=== SVN client ===&lt;br /&gt;
&lt;br /&gt;
In order to check out the Code::Blocks sources you will need a SVN client.&lt;br /&gt;
For convenience, it is recommended that you install [http://tortoisesvn.net/downloads TortoiseSVN] on your machine, as this is a lot more comfortable. However, if you get a bad feeling when some program is messing with your Explorer menu, then you can use the [http://subversion.tigris.org/project_packages.html svn command-line client] equally well.&lt;br /&gt;
&lt;br /&gt;
It is generally a good idea to install the command-line client (and adding it to PATH) even if you use TortoiseSVN for convenience. The &amp;lt;tt&amp;gt;autorevision&amp;lt;/tt&amp;gt; tool which is used during the build of Code::Blocks makes use of the &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; binary if it is available. This is preferable to the manual parsing of the entries file that is used as fall-back.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please do note that working copies checked out with the 1.4 version of Subversion are no longer compatible with earlier versions (Subversion will transparently update existing repositories).&lt;br /&gt;
&lt;br /&gt;
The built-in fall-back mechanism in &amp;lt;tt&amp;gt;autorevision&amp;lt;/tt&amp;gt; has been updated to the new 1.4 format and will no longer work with the old format.&amp;lt;br&amp;gt;&lt;br /&gt;
Therefore, if you use a Subversion client from the 1.0-1.3 line, you ''must'' put the command line tool into &amp;lt;tt&amp;gt;PATH&amp;lt;/tt&amp;gt; for a successful build.&amp;lt;br&amp;gt;&lt;br /&gt;
If you use Subversion 1.4, then it is good practice nevertheless, but you can do without, too.&lt;br /&gt;
&lt;br /&gt;
=== svn.exe ===&lt;br /&gt;
If you want to show the SVN number in your code::blocks dialog box.&lt;br /&gt;
&lt;br /&gt;
[[Image:Svn number.png|300*300px]]&lt;br /&gt;
&lt;br /&gt;
You should also let svn.exe exist in the PATH of your windows system.&lt;br /&gt;
A command line SVN package can be download here [http://www.open.collab.net/downloads/subversion/ CollabNet Subversion Command-Line Client v1.6 (for Windows)].&lt;br /&gt;
&lt;br /&gt;
=== zip.exe ===&lt;br /&gt;
&lt;br /&gt;
You'll also need a working 'zip' program.&lt;br /&gt;
If you have the version listed on our [[MinGW installation#Other developer tools|tools page]], you'll be fine.&lt;br /&gt;
&lt;br /&gt;
The zip program coming with cygwin will ''not'' work properly. You do ''not'' need WinZip.&lt;br /&gt;
&lt;br /&gt;
Make sure the zip binary is in your PATH so the &amp;lt;tt&amp;gt;update.bat&amp;lt;/tt&amp;gt; script will be able to find it (alternatively, you can edit the batch file, setting the ZIPCMD variable to something else).&lt;br /&gt;
&lt;br /&gt;
The easiest way is to put zip.exe into &amp;lt;tt&amp;gt;bin&amp;lt;/tt&amp;gt; inside your MinGW installation directory (that folder is normally in the path).&lt;br /&gt;
&lt;br /&gt;
=== Code::Blocks sources ===&lt;br /&gt;
&lt;br /&gt;
You will also (obviously) need the Code::Blocks sources. &lt;br /&gt;
&lt;br /&gt;
Using ''TortoiseSVN'', make a folder where you want to store the sources, right-click on the folder, and select &amp;quot;SVN Checkout...&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''!! The URL in this image is wrong !!''' Look at the description under the image:&lt;br /&gt;
&lt;br /&gt;
[[Image:Win svn checkout.png]]&lt;br /&gt;
&lt;br /&gt;
In the top box, enter svn://svn.code.sf.net/p/codeblocks/code/trunk and hit the OK button.&lt;br /&gt;
&lt;br /&gt;
Using ''svn'', you have to open a command prompt (&amp;quot;DOS Window&amp;quot;). Make a folder, change directory, and run svn:&lt;br /&gt;
&lt;br /&gt;
 mkdir codeblocks-head&lt;br /&gt;
 cd codeblocks-head&lt;br /&gt;
 svn checkout &amp;lt;nowiki&amp;gt;svn://svn.code.sf.net/p/codeblocks/code/trunk&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Unicode Build ==&lt;br /&gt;
&lt;br /&gt;
=== Compile wxWidgets in Unicode mode ===&lt;br /&gt;
&lt;br /&gt;
After unpacking the zip file to a directory of your choice, open a cmd prompt, and navigate to the folder build/msw inside the wxWidgets folder. Use the following commands to compile wxWidgets:&lt;br /&gt;
&lt;br /&gt;
 set path=c:\mingw\bin;c:\mingw\mingw32\bin&lt;br /&gt;
 mingw32-make -f makefile.gcc SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1  clean&lt;br /&gt;
 mingw32-make -f makefile.gcc SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1&lt;br /&gt;
&lt;br /&gt;
This assumes your MinGW installation is in C:\mingw. Use a different path if you installed MinGW somewhere else.&lt;br /&gt;
&lt;br /&gt;
You will see a lot of warning messages during compilation. Don't worry, this is normal, you are compiling wxWidgets. The build process may take 10-30 minutes, depending on your computer's speed.&lt;br /&gt;
&lt;br /&gt;
If you are using a recent version of MinGW you may find that the object files are too large and that the linker runs out of memory. To fix this problem you need to edit config.gcc so that inline functions are not exported, by modifying the CFLAGS and CXXFLAGS lines to:&lt;br /&gt;
&lt;br /&gt;
  CFLAGS ?= -fno-keep-inline-dllexport&lt;br /&gt;
&lt;br /&gt;
  CXXFLAGS ?= -fno-keep-inline-dllexport&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''remark: If you want to use wxWidgets not only for building Code::Blocks, but also for writing wxWidgets programs, and if you want to use the debugger in those programs, you have to compile a debug build of wxWidgets as well.''&lt;br /&gt;
''Use the same commands as for the release build, but replace &amp;quot;release&amp;quot; by &amp;quot;debug&amp;quot;.''&lt;br /&gt;
&lt;br /&gt;
'''Optional:'''&lt;br /&gt;
&lt;br /&gt;
To reduce the size of your wxWidgets library, you can disable features which are not used by Code::Blocks. However, you should not do this unless you know what you are doing. You have to delete the generated setup.h from lib/gcc_dll/msw/wx before building, because your changes to include/wx/msw will otherwise not be honoured.&lt;br /&gt;
&lt;br /&gt;
=== Compile Code::Blocks ===&lt;br /&gt;
Now, before this step, you have prepared all the stuff to build code::blocks. It's very interesting that we use code::blocks to build code::blocks binaries.&lt;br /&gt;
&lt;br /&gt;
==== Open project====&lt;br /&gt;
Open the project file '''CodeBlocks.cbp'''. &lt;br /&gt;
*You will be prompted to define the global variable $(#wx). Enter the location where you unpacked wxWidgets.&lt;br /&gt;
&lt;br /&gt;
[[Image:Global_variable.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Global_variable2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*You will also be prompted to enter the global variable '''cb_release_type'''. Here you can add compiler optimization or debug-flags. Enter '''-g''' in the '''base''' field.&lt;br /&gt;
&lt;br /&gt;
====Compile project====&lt;br /&gt;
Hit the blue gear and lean back. Compilation may take 3-5 minutes, depending on the speed of your computer.&lt;br /&gt;
&lt;br /&gt;
[[Image:Win build button.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Win build target.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Win build finish.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Copy wxWidgets support DLL====&lt;br /&gt;
After the compilation has finished, copy &amp;lt;tt&amp;gt;lib\gcc_dll\wxmsw28u_gcc_custom.dll&amp;lt;/tt&amp;gt; from the wxWidgets directory to the &amp;lt;tt&amp;gt;src\devel&amp;lt;/tt&amp;gt; directory inside the Code::Blocks source folder (it will also work if you keep a copy of that library in your Windows folder or anywhere in your system path, but this is generally not recommended because you can get into dll hell).&lt;br /&gt;
&lt;br /&gt;
[[Image:Win output folder.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Win copy dll.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Runing script file====&lt;br /&gt;
Run &amp;lt;tt&amp;gt;src\update.bat&amp;lt;/tt&amp;gt; (located in the root source directory). This will pack the resource files and copy libraries and plugins to their correct locations.&lt;br /&gt;
&lt;br /&gt;
[[Image:Win run bat.png]]&lt;br /&gt;
&lt;br /&gt;
The stripped (&amp;quot;production&amp;quot;) executable is found in &amp;lt;tt&amp;gt;output&amp;lt;/tt&amp;gt; folder together with all libraries and data files. If you want a version with debug symbols instead (caution: huge size!), use the one found in the &amp;lt;tt&amp;gt;devel&amp;lt;/tt&amp;gt; folder.&amp;lt;br&amp;gt;&lt;br /&gt;
Congratulations, you own a freshly built version of Code::Blocks!&lt;br /&gt;
&lt;br /&gt;
[[Image:Win final folder.png]]&lt;br /&gt;
&lt;br /&gt;
====Note for future updates====&lt;br /&gt;
Go to the Code::Blocks root directory and run &amp;lt;tt&amp;gt;svn update&amp;lt;/tt&amp;gt; (or use TurtoiseSVN to the same effect).&amp;lt;br/&amp;gt;&lt;br /&gt;
Then open and build the project as described before (and any contrib plugins that you wish to use), and re-run &amp;lt;tt&amp;gt;src\update.bat&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Install Code::Blocks ===&lt;br /&gt;
&lt;br /&gt;
Copy the folder output to where you want Code::Blocks to reside.&lt;br /&gt;
&lt;br /&gt;
=== Compile contributed (or your own) plugins ===&lt;br /&gt;
&lt;br /&gt;
The workspace file '''ContribPlugins.workspace''' contains the project files for all contributed plugins. Open that workspace and compile the plugins which you would like to use (or select &amp;quot;Build Workspace&amp;quot; from the context menu if you want them all).&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Contribute plugin.png]]&lt;br /&gt;
&lt;br /&gt;
When you open the contrib plugins workspace, you will be asked to define the &amp;lt;tt&amp;gt;$(#cb)&amp;lt;/tt&amp;gt; global compiler variable. This is the path that contains the sdk folder normally this is codeblocks\src. The build process uses this information to place the plugins and data files into the correct place. Enter the location of the Code::Blocks sources in the same way as for the &amp;lt;tt&amp;gt;$(#wx)&amp;lt;/tt&amp;gt; variable earlier.&lt;br /&gt;
&lt;br /&gt;
Don't forget to run update.bat again after building the contrib plugins.&lt;br /&gt;
&lt;br /&gt;
== ANSI Build ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f7d9d9; border: 1px solid #000&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== DEPRECATION WARNING: ====&lt;br /&gt;
As of February 2006, the official default build for Code::Blocks is '''Unicode''' (see above). Although ANSI builds are technically possible, we discourage their use unless there is a good reason.&amp;lt;br/&amp;gt;&lt;br /&gt;
''Support for ANSI builds is likely to be dropped after Version 1.0 is out.''&lt;br /&gt;
&lt;br /&gt;
There is hardly any good argument against using a Unicode build if your OS supports Unicode, even if you do not understand any other language than English, as a Unicode version guarantees that it will be able to work with whatever languages you may possibly encounter in the future -- at a very reasonable cost.&lt;br /&gt;
&lt;br /&gt;
However, if you absolutely don't care about Unicode or if you are bound to use Windows 95, then you may want to build an ANSI version nevertheless.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Compile wxWidgets in ANSI mode ====&lt;br /&gt;
&lt;br /&gt;
After unpacking the zip file to a directory of your choice, open a cmd prompt, and navigate to the folder build/msw inside the wxWidgets folder. Use the following commands to compile wxWidgets&lt;br /&gt;
&lt;br /&gt;
 set path=c:\mingw\bin;c:\mingw\mingw32\bin&lt;br /&gt;
 mingw32-make -f makefile.gcc SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=0 clean&lt;br /&gt;
 mingw32-make -f makefile.gcc SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=0&lt;br /&gt;
&lt;br /&gt;
This assumes your MinGW installation is in C:\mingw. Use a different path if you installed MinGW somewhere else.&lt;br /&gt;
&lt;br /&gt;
You will see a lot of warning messages during compilation. Don't worry, this is normal, you are compiling wxWidgets. The build process may take 10-30 minutes, depending on your computer's speed.&lt;br /&gt;
&lt;br /&gt;
'''Optional:'''&lt;br /&gt;
&lt;br /&gt;
To reduce the size of your wxWidgets library, you can disable features which are not used by Code::Blocks. However, you should not do this unless you know what you are doing. You have to delete the generated setup.h from lib/gcc_dll/msw/wx before building, because your changes to include/wx/msw will otherwise not be honoured.&lt;br /&gt;
&lt;br /&gt;
==== Compile Code::Blocks ====&lt;br /&gt;
&lt;br /&gt;
Open the project CodeBlocks.cbp. You will be prompted to define the global variable $(#wx) if you have not used it before. Enter the location where you unpacked wxWidgets.&lt;br /&gt;
&lt;br /&gt;
'''Important:'''  The project file is set to compile an Unicode version of Code::Blocks by default. To make an ANSI build, you have to make the following two changes to build options before compiling:&lt;br /&gt;
1. In the &amp;quot;Compiler&amp;quot; tab, under &amp;quot;#defines&amp;quot;, remove the entry wxUSE_UNICODE.&lt;br /&gt;
2. Under &amp;quot;Custom variables&amp;quot;, set the variable WX_SUFFIX to empty (default value: u).&lt;br /&gt;
&lt;br /&gt;
Hit the blue gear and lean back. Compilation may take 3-5 minutes, depending on the speed of your computer.&lt;br /&gt;
&lt;br /&gt;
After the compilation has finished, copy wxmsw28u_gcc_custom.dll from lib\gcc_dll inside the wxWidgets directory to the devel directory inside the Code::Blocks source folder (it will also work if you keep a copy of that library in your Windows folder or anywhere in your system path, but this is generally not recommended because you can get into [[wikipedia:DLL Hell|dll hell]]).&lt;br /&gt;
Run update.bat (located in the root source directory). This will pack the resource files and copy libraries and plugins to their correct locations.&lt;br /&gt;
The location of executable is src\output in C::B tree. From here you'll not need the nightly build anymore.&lt;br /&gt;
&lt;br /&gt;
One little note for svn updates and rebuilds : just go into the codeblocks root directory and do '''svn update''' (or use Turtoise svn).&lt;br /&gt;
&lt;br /&gt;
Then run the src/output/codeblocks.exe, reload project, build it, reload plugins workspace, build it, quit codeblocks and re-run update.bat. You'll have an up-to-date C::B in 3 minutes !&lt;br /&gt;
&lt;br /&gt;
==== Install Code::Blocks ====&lt;br /&gt;
&lt;br /&gt;
Copy the folder output to where you want Code::Blocks to reside.&lt;br /&gt;
&lt;br /&gt;
==== Compile contributed (or your own) plugins ====&lt;br /&gt;
&lt;br /&gt;
The workspace file ContribPlugins.workspace contains the project files for all contributed plugins. Open that workspace and compile the plugins which you would like to use (or select &amp;quot;Build Workspace&amp;quot; from the context menu if you want them all). Don't forget to run update.bat again after building the contrib plugins.&lt;br /&gt;
&lt;br /&gt;
Note that the Nassi Shneiderman plugin (part of the contrib plugins) has a dependency on [http://www.boost.org boost] which is needed to compile this plugin. Boost does not need to be compiled therefore.&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Installing_Code::Blocks_from_source_on_Windows&amp;diff=7637</id>
		<title>Installing Code::Blocks from source on Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Installing_Code::Blocks_from_source_on_Windows&amp;diff=7637"/>
		<updated>2013-07-21T14:45:15Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Installing Code::Blocks]]&lt;br /&gt;
[[Category:Installing Code::Blocks from source]]&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
=== Note for RC2 users ===&lt;br /&gt;
&lt;br /&gt;
The older Code::Blocks RC2 does not support global compiler variables which were added after RC2 was released and is unable to read project files generated with post-RC2 versions.&lt;br /&gt;
To build Code::Blocks, you need a post-RC2 build, such as ''8.02'' or any of the ''nightly builds'' obtainable by [/index.php?board=20.0 searching the forum].&lt;br /&gt;
&lt;br /&gt;
=== MinGW compiler ===&lt;br /&gt;
&lt;br /&gt;
At the present time, Code::Blocks only compiles successfully with the MinGW compiler (or any other gcc for that matter). You will need a complete, working [[MinGW installation]] or [http://www.tdragon.net/recentgcc/ TDM-MinGW package]. &lt;br /&gt;
&lt;br /&gt;
'''Do not''' use the barebones MinGW with GCC 4.5.1 as you'll run (with this specific version) into [http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43601 a linker bug] (which happened to me on Vista SP1 32-bit on 2011-02-28); the solution is to use the TDM-GCC 4.5.1 package, or later.&lt;br /&gt;
&lt;br /&gt;
=== wxWidgets ===&lt;br /&gt;
&lt;br /&gt;
[http://www.wxwidgets.org/ wxWidgets.org]&lt;br /&gt;
&lt;br /&gt;
Code::Blocks uses&lt;br /&gt;
* since 02 April 2011 wxWidgets 2.8.12 &amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.12.zip wxMSW-2.8.12.zip]&lt;br /&gt;
&lt;br /&gt;
* since 28 March 2009 wxWidgets 2.8.10 &amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.10.zip wxMSW-2.8.10.zip]&lt;br /&gt;
&lt;br /&gt;
* since 18 October 2008 wxWidgets 2.8.9 &amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.9.zip wxMSW-2.8.9.zip]&lt;br /&gt;
&lt;br /&gt;
* since 19 July 2008 wxWidgets 2.8.8 &amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.8.zip wxMSW-2.8.8.zip]&lt;br /&gt;
&lt;br /&gt;
* since 28 November 2007 wxWidgets 2.8.7 &amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.7.zip wxMSW-2.8.7.zip]&lt;br /&gt;
&lt;br /&gt;
* since November 2007 wxWidgets 2.8.6 &amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.6.zip wxMSW-2.8.6.zip]&lt;br /&gt;
&lt;br /&gt;
* since May 2007 wxWidgets 2.8.4&amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.4.zip wxMSW-2.8.4.zip]&lt;br /&gt;
&lt;br /&gt;
For latest infos check forum: [/index.php?topic=3299.0 Important changes to the nightly builds]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You do ''not'' need MSYS (''in fact, if you have MSYS, make sure it is not in your PATH when building wxWidgets'').&lt;br /&gt;
&lt;br /&gt;
=== SVN client ===&lt;br /&gt;
&lt;br /&gt;
In order to check out the Code::Blocks sources you will need a SVN client.&lt;br /&gt;
For convenience, it is recommended that you install [http://tortoisesvn.net/downloads TortoiseSVN] on your machine, as this is a lot more comfortable. However, if you get a bad feeling when some program is messing with your Explorer menu, then you can use the [http://subversion.tigris.org/project_packages.html svn command-line client] equally well.&lt;br /&gt;
&lt;br /&gt;
It is generally a good idea to install the command-line client (and adding it to PATH) even if you use TortoiseSVN for convenience. The &amp;lt;tt&amp;gt;autorevision&amp;lt;/tt&amp;gt; tool which is used during the build of Code::Blocks makes use of the &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; binary if it is available. This is preferable to the manual parsing of the entries file that is used as fall-back.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please do note that working copies checked out with the 1.4 version of Subversion are no longer compatible with earlier versions (Subversion will transparently update existing repositories).&lt;br /&gt;
&lt;br /&gt;
The built-in fall-back mechanism in &amp;lt;tt&amp;gt;autorevision&amp;lt;/tt&amp;gt; has been updated to the new 1.4 format and will no longer work with the old format.&amp;lt;br&amp;gt;&lt;br /&gt;
Therefore, if you use a Subversion client from the 1.0-1.3 line, you ''must'' put the command line tool into &amp;lt;tt&amp;gt;PATH&amp;lt;/tt&amp;gt; for a successful build.&amp;lt;br&amp;gt;&lt;br /&gt;
If you use Subversion 1.4, then it is good practice nevertheless, but you can do without, too.&lt;br /&gt;
&lt;br /&gt;
=== svn.exe ===&lt;br /&gt;
If you want to show the SVN number in your code::blocks dialog box.&lt;br /&gt;
&lt;br /&gt;
[[Image:Svn number.png|300*300px]]&lt;br /&gt;
&lt;br /&gt;
You should also let svn.exe exist in the PATH of your windows system.&lt;br /&gt;
A command line SVN package can be download here [http://www.open.collab.net/downloads/subversion/ CollabNet Subversion Command-Line Client v1.6 (for Windows)].&lt;br /&gt;
&lt;br /&gt;
=== zip.exe ===&lt;br /&gt;
&lt;br /&gt;
You'll also need a working 'zip' program.&lt;br /&gt;
If you have the version listed on our [[MinGW installation#Other developer tools|tools page]], you'll be fine.&lt;br /&gt;
&lt;br /&gt;
The zip program coming with cygwin will ''not'' work properly. You do ''not'' need WinZip.&lt;br /&gt;
&lt;br /&gt;
Make sure the zip binary is in your PATH so the &amp;lt;tt&amp;gt;update.bat&amp;lt;/tt&amp;gt; script will be able to find it (alternatively, you can edit the batch file, setting the ZIPCMD variable to something else).&lt;br /&gt;
&lt;br /&gt;
The easiest way is to put zip.exe into &amp;lt;tt&amp;gt;bin&amp;lt;/tt&amp;gt; inside your MinGW installation directory (that folder is normally in the path).&lt;br /&gt;
&lt;br /&gt;
=== Code::Blocks sources ===&lt;br /&gt;
&lt;br /&gt;
You will also (obviously) need the Code::Blocks sources. &lt;br /&gt;
&lt;br /&gt;
Using ''TortoiseSVN'', make a folder where you want to store the sources, right-click on the folder, and select &amp;quot;SVN Checkout...&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
'''!! The URL in this image is wrong !!''' Look at the description under the image:&lt;br /&gt;
&lt;br /&gt;
[[Image:Win svn checkout.png]]&lt;br /&gt;
&lt;br /&gt;
In the top box, enter svn://svn.code.sf.net/p/codeblocks/code/trunk and hit the OK button.&lt;br /&gt;
&lt;br /&gt;
Using ''svn'', you have to open a command prompt (&amp;quot;DOS Window&amp;quot;). Make a folder, change directory, and run svn:&lt;br /&gt;
&lt;br /&gt;
 mkdir codeblocks-head&lt;br /&gt;
 cd codeblocks-head&lt;br /&gt;
 svn checkout &amp;lt;nowiki&amp;gt;svn://svn.code.sf.net/p/codeblocks/code/trunk&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Unicode Build ==&lt;br /&gt;
&lt;br /&gt;
=== Compile wxWidgets in Unicode mode ===&lt;br /&gt;
&lt;br /&gt;
After unpacking the zip file to a directory of your choice, open a cmd prompt, and navigate to the folder build/msw inside the wxWidgets folder. Use the following commands to compile wxWidgets:&lt;br /&gt;
&lt;br /&gt;
 set path=c:\mingw\bin;c:\mingw\mingw32\bin&lt;br /&gt;
 mingw32-make -f makefile.gcc SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1  clean&lt;br /&gt;
 mingw32-make -f makefile.gcc SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1&lt;br /&gt;
&lt;br /&gt;
This assumes your MinGW installation is in C:\mingw. Use a different path if you installed MinGW somewhere else.&lt;br /&gt;
&lt;br /&gt;
You will see a lot of warning messages during compilation. Don't worry, this is normal, you are compiling wxWidgets. The build process may take 10-30 minutes, depending on your computer's speed.&lt;br /&gt;
&lt;br /&gt;
If you are using a recent version of MinGW you may find that the object files are too large and that the linker runs out of memory. To fix this problem you need to edit config.gcc so that inline functions are not exported, by modifying the CFLAGS and CXXFLAGS lines to:&lt;br /&gt;
&lt;br /&gt;
  CFLAGS ?= -fno-keep-inline-dllexport&lt;br /&gt;
&lt;br /&gt;
  CXXFLAGS ?= -fno-keep-inline-dllexport&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''remark: If you want to use wxWidgets not only for building Code::Blocks, but also for writing wxWidgets programs, and if you want to use the debugger in those programs, you have to compile a debug build of wxWidgets as well.''&lt;br /&gt;
''Use the same commands as for the release build, but replace &amp;quot;release&amp;quot; by &amp;quot;debug&amp;quot;.''&lt;br /&gt;
&lt;br /&gt;
'''Optional:'''&lt;br /&gt;
&lt;br /&gt;
To reduce the size of your wxWidgets library, you can disable features which are not used by Code::Blocks. However, you should not do this unless you know what you are doing. You have to delete the generated setup.h from lib/gcc_dll/msw/wx before building, because your changes to include/wx/msw will otherwise not be honoured.&lt;br /&gt;
&lt;br /&gt;
=== Compile Code::Blocks ===&lt;br /&gt;
Now, before this step, you have prepared all the stuff to build code::blocks. It's very interesting that we use code::blocks to build code::blocks binaries.&lt;br /&gt;
&lt;br /&gt;
==== Open project====&lt;br /&gt;
Open the project file '''CodeBlocks.cbp'''. You will be prompted to define the global variable $(#wx). Enter the location where you unpacked wxWidgets.&lt;br /&gt;
&lt;br /&gt;
[[Image:Global_variable.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Global_variable2.png]]&lt;br /&gt;
&lt;br /&gt;
====Compile project====&lt;br /&gt;
Hit the blue gear and lean back. Compilation may take 3-5 minutes, depending on the speed of your computer.&lt;br /&gt;
&lt;br /&gt;
[[Image:Win build button.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Win build target.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Win build finish.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Copy wxWidgets support DLL====&lt;br /&gt;
After the compilation has finished, copy &amp;lt;tt&amp;gt;lib\gcc_dll\wxmsw28u_gcc_custom.dll&amp;lt;/tt&amp;gt; from the wxWidgets directory to the &amp;lt;tt&amp;gt;src\devel&amp;lt;/tt&amp;gt; directory inside the Code::Blocks source folder (it will also work if you keep a copy of that library in your Windows folder or anywhere in your system path, but this is generally not recommended because you can get into dll hell).&lt;br /&gt;
&lt;br /&gt;
[[Image:Win output folder.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Win copy dll.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Runing script file====&lt;br /&gt;
Run &amp;lt;tt&amp;gt;src\update.bat&amp;lt;/tt&amp;gt; (located in the root source directory). This will pack the resource files and copy libraries and plugins to their correct locations.&lt;br /&gt;
&lt;br /&gt;
[[Image:Win run bat.png]]&lt;br /&gt;
&lt;br /&gt;
The stripped (&amp;quot;production&amp;quot;) executable is found in &amp;lt;tt&amp;gt;output&amp;lt;/tt&amp;gt; folder together with all libraries and data files. If you want a version with debug symbols instead (caution: huge size!), use the one found in the &amp;lt;tt&amp;gt;devel&amp;lt;/tt&amp;gt; folder.&amp;lt;br&amp;gt;&lt;br /&gt;
Congratulations, you own a freshly built version of Code::Blocks!&lt;br /&gt;
&lt;br /&gt;
[[Image:Win final folder.png]]&lt;br /&gt;
&lt;br /&gt;
====Note for future updates====&lt;br /&gt;
Go to the Code::Blocks root directory and run &amp;lt;tt&amp;gt;svn update&amp;lt;/tt&amp;gt; (or use TurtoiseSVN to the same effect).&amp;lt;br/&amp;gt;&lt;br /&gt;
Then open and build the project as described before (and any contrib plugins that you wish to use), and re-run &amp;lt;tt&amp;gt;src\update.bat&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Install Code::Blocks ===&lt;br /&gt;
&lt;br /&gt;
Copy the folder output to where you want Code::Blocks to reside.&lt;br /&gt;
&lt;br /&gt;
=== Compile contributed (or your own) plugins ===&lt;br /&gt;
&lt;br /&gt;
The workspace file '''ContribPlugins.workspace''' contains the project files for all contributed plugins. Open that workspace and compile the plugins which you would like to use (or select &amp;quot;Build Workspace&amp;quot; from the context menu if you want them all).&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Contribute plugin.png]]&lt;br /&gt;
&lt;br /&gt;
When you open the contrib plugins workspace, you will be asked to define the &amp;lt;tt&amp;gt;$(#cb)&amp;lt;/tt&amp;gt; global compiler variable. This is the path that contains the sdk folder normally this is codeblocks\src. The build process uses this information to place the plugins and data files into the correct place. Enter the location of the Code::Blocks sources in the same way as for the &amp;lt;tt&amp;gt;$(#wx)&amp;lt;/tt&amp;gt; variable earlier.&lt;br /&gt;
&lt;br /&gt;
Don't forget to run update.bat again after building the contrib plugins.&lt;br /&gt;
&lt;br /&gt;
== ANSI Build ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f7d9d9; border: 1px solid #000&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== DEPRECATION WARNING: ====&lt;br /&gt;
As of February 2006, the official default build for Code::Blocks is '''Unicode''' (see above). Although ANSI builds are technically possible, we discourage their use unless there is a good reason.&amp;lt;br/&amp;gt;&lt;br /&gt;
''Support for ANSI builds is likely to be dropped after Version 1.0 is out.''&lt;br /&gt;
&lt;br /&gt;
There is hardly any good argument against using a Unicode build if your OS supports Unicode, even if you do not understand any other language than English, as a Unicode version guarantees that it will be able to work with whatever languages you may possibly encounter in the future -- at a very reasonable cost.&lt;br /&gt;
&lt;br /&gt;
However, if you absolutely don't care about Unicode or if you are bound to use Windows 95, then you may want to build an ANSI version nevertheless.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Compile wxWidgets in ANSI mode ====&lt;br /&gt;
&lt;br /&gt;
After unpacking the zip file to a directory of your choice, open a cmd prompt, and navigate to the folder build/msw inside the wxWidgets folder. Use the following commands to compile wxWidgets&lt;br /&gt;
&lt;br /&gt;
 set path=c:\mingw\bin;c:\mingw\mingw32\bin&lt;br /&gt;
 mingw32-make -f makefile.gcc SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=0 clean&lt;br /&gt;
 mingw32-make -f makefile.gcc SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=0&lt;br /&gt;
&lt;br /&gt;
This assumes your MinGW installation is in C:\mingw. Use a different path if you installed MinGW somewhere else.&lt;br /&gt;
&lt;br /&gt;
You will see a lot of warning messages during compilation. Don't worry, this is normal, you are compiling wxWidgets. The build process may take 10-30 minutes, depending on your computer's speed.&lt;br /&gt;
&lt;br /&gt;
'''Optional:'''&lt;br /&gt;
&lt;br /&gt;
To reduce the size of your wxWidgets library, you can disable features which are not used by Code::Blocks. However, you should not do this unless you know what you are doing. You have to delete the generated setup.h from lib/gcc_dll/msw/wx before building, because your changes to include/wx/msw will otherwise not be honoured.&lt;br /&gt;
&lt;br /&gt;
==== Compile Code::Blocks ====&lt;br /&gt;
&lt;br /&gt;
Open the project CodeBlocks.cbp. You will be prompted to define the global variable $(#wx) if you have not used it before. Enter the location where you unpacked wxWidgets.&lt;br /&gt;
&lt;br /&gt;
'''Important:'''  The project file is set to compile an Unicode version of Code::Blocks by default. To make an ANSI build, you have to make the following two changes to build options before compiling:&lt;br /&gt;
1. In the &amp;quot;Compiler&amp;quot; tab, under &amp;quot;#defines&amp;quot;, remove the entry wxUSE_UNICODE.&lt;br /&gt;
2. Under &amp;quot;Custom variables&amp;quot;, set the variable WX_SUFFIX to empty (default value: u).&lt;br /&gt;
&lt;br /&gt;
Hit the blue gear and lean back. Compilation may take 3-5 minutes, depending on the speed of your computer.&lt;br /&gt;
&lt;br /&gt;
After the compilation has finished, copy wxmsw28u_gcc_custom.dll from lib\gcc_dll inside the wxWidgets directory to the devel directory inside the Code::Blocks source folder (it will also work if you keep a copy of that library in your Windows folder or anywhere in your system path, but this is generally not recommended because you can get into [[wikipedia:DLL Hell|dll hell]]).&lt;br /&gt;
Run update.bat (located in the root source directory). This will pack the resource files and copy libraries and plugins to their correct locations.&lt;br /&gt;
The location of executable is src\output in C::B tree. From here you'll not need the nightly build anymore.&lt;br /&gt;
&lt;br /&gt;
One little note for svn updates and rebuilds : just go into the codeblocks root directory and do '''svn update''' (or use Turtoise svn).&lt;br /&gt;
&lt;br /&gt;
Then run the src/output/codeblocks.exe, reload project, build it, reload plugins workspace, build it, quit codeblocks and re-run update.bat. You'll have an up-to-date C::B in 3 minutes !&lt;br /&gt;
&lt;br /&gt;
==== Install Code::Blocks ====&lt;br /&gt;
&lt;br /&gt;
Copy the folder output to where you want Code::Blocks to reside.&lt;br /&gt;
&lt;br /&gt;
==== Compile contributed (or your own) plugins ====&lt;br /&gt;
&lt;br /&gt;
The workspace file ContribPlugins.workspace contains the project files for all contributed plugins. Open that workspace and compile the plugins which you would like to use (or select &amp;quot;Build Workspace&amp;quot; from the context menu if you want them all). Don't forget to run update.bat again after building the contrib plugins.&lt;br /&gt;
&lt;br /&gt;
Note that the Nassi Shneiderman plugin (part of the contrib plugins) has a dependency on [http://www.boost.org boost] which is needed to compile this plugin. Boost does not need to be compiled therefore.&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Installing_Code::Blocks_from_source_on_Windows&amp;diff=7636</id>
		<title>Installing Code::Blocks from source on Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Installing_Code::Blocks_from_source_on_Windows&amp;diff=7636"/>
		<updated>2013-07-21T14:43:19Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: added warning for wrong url in image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Installing Code::Blocks]]&lt;br /&gt;
[[Category:Installing Code::Blocks from source]]&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
=== Note for RC2 users ===&lt;br /&gt;
&lt;br /&gt;
The older Code::Blocks RC2 does not support global compiler variables which were added after RC2 was released and is unable to read project files generated with post-RC2 versions.&lt;br /&gt;
To build Code::Blocks, you need a post-RC2 build, such as ''8.02'' or any of the ''nightly builds'' obtainable by [/index.php?board=20.0 searching the forum].&lt;br /&gt;
&lt;br /&gt;
=== MinGW compiler ===&lt;br /&gt;
&lt;br /&gt;
At the present time, Code::Blocks only compiles successfully with the MinGW compiler (or any other gcc for that matter). You will need a complete, working [[MinGW installation]] or [http://www.tdragon.net/recentgcc/ TDM-MinGW package]. &lt;br /&gt;
&lt;br /&gt;
'''Do not''' use the barebones MinGW with GCC 4.5.1 as you'll run (with this specific version) into [http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43601 a linker bug] (which happened to me on Vista SP1 32-bit on 2011-02-28); the solution is to use the TDM-GCC 4.5.1 package, or later.&lt;br /&gt;
&lt;br /&gt;
=== wxWidgets ===&lt;br /&gt;
&lt;br /&gt;
[http://www.wxwidgets.org/ wxWidgets.org]&lt;br /&gt;
&lt;br /&gt;
Code::Blocks uses&lt;br /&gt;
* since 02 April 2011 wxWidgets 2.8.12 &amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.12.zip wxMSW-2.8.12.zip]&lt;br /&gt;
&lt;br /&gt;
* since 28 March 2009 wxWidgets 2.8.10 &amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.10.zip wxMSW-2.8.10.zip]&lt;br /&gt;
&lt;br /&gt;
* since 18 October 2008 wxWidgets 2.8.9 &amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.9.zip wxMSW-2.8.9.zip]&lt;br /&gt;
&lt;br /&gt;
* since 19 July 2008 wxWidgets 2.8.8 &amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.8.zip wxMSW-2.8.8.zip]&lt;br /&gt;
&lt;br /&gt;
* since 28 November 2007 wxWidgets 2.8.7 &amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.7.zip wxMSW-2.8.7.zip]&lt;br /&gt;
&lt;br /&gt;
* since November 2007 wxWidgets 2.8.6 &amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.6.zip wxMSW-2.8.6.zip]&lt;br /&gt;
&lt;br /&gt;
* since May 2007 wxWidgets 2.8.4&amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.4.zip wxMSW-2.8.4.zip]&lt;br /&gt;
&lt;br /&gt;
For latest infos check forum: [/index.php?topic=3299.0 Important changes to the nightly builds]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You do ''not'' need MSYS (''in fact, if you have MSYS, make sure it is not in your PATH when building wxWidgets'').&lt;br /&gt;
&lt;br /&gt;
=== SVN client ===&lt;br /&gt;
&lt;br /&gt;
In order to check out the Code::Blocks sources you will need a SVN client.&lt;br /&gt;
For convenience, it is recommended that you install [http://tortoisesvn.net/downloads TortoiseSVN] on your machine, as this is a lot more comfortable. However, if you get a bad feeling when some program is messing with your Explorer menu, then you can use the [http://subversion.tigris.org/project_packages.html svn command-line client] equally well.&lt;br /&gt;
&lt;br /&gt;
It is generally a good idea to install the command-line client (and adding it to PATH) even if you use TortoiseSVN for convenience. The &amp;lt;tt&amp;gt;autorevision&amp;lt;/tt&amp;gt; tool which is used during the build of Code::Blocks makes use of the &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; binary if it is available. This is preferable to the manual parsing of the entries file that is used as fall-back.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please do note that working copies checked out with the 1.4 version of Subversion are no longer compatible with earlier versions (Subversion will transparently update existing repositories).&lt;br /&gt;
&lt;br /&gt;
The built-in fall-back mechanism in &amp;lt;tt&amp;gt;autorevision&amp;lt;/tt&amp;gt; has been updated to the new 1.4 format and will no longer work with the old format.&amp;lt;br&amp;gt;&lt;br /&gt;
Therefore, if you use a Subversion client from the 1.0-1.3 line, you ''must'' put the command line tool into &amp;lt;tt&amp;gt;PATH&amp;lt;/tt&amp;gt; for a successful build.&amp;lt;br&amp;gt;&lt;br /&gt;
If you use Subversion 1.4, then it is good practice nevertheless, but you can do without, too.&lt;br /&gt;
&lt;br /&gt;
=== svn.exe ===&lt;br /&gt;
If you want to show the SVN number in your code::blocks dialog box.&lt;br /&gt;
&lt;br /&gt;
[[Image:Svn number.png|300*300px]]&lt;br /&gt;
&lt;br /&gt;
You should also let svn.exe exist in the PATH of your windows system.&lt;br /&gt;
A command line SVN package can be download here [http://www.open.collab.net/downloads/subversion/ CollabNet Subversion Command-Line Client v1.6 (for Windows)].&lt;br /&gt;
&lt;br /&gt;
=== zip.exe ===&lt;br /&gt;
&lt;br /&gt;
You'll also need a working 'zip' program.&lt;br /&gt;
If you have the version listed on our [[MinGW installation#Other developer tools|tools page]], you'll be fine.&lt;br /&gt;
&lt;br /&gt;
The zip program coming with cygwin will ''not'' work properly. You do ''not'' need WinZip.&lt;br /&gt;
&lt;br /&gt;
Make sure the zip binary is in your PATH so the &amp;lt;tt&amp;gt;update.bat&amp;lt;/tt&amp;gt; script will be able to find it (alternatively, you can edit the batch file, setting the ZIPCMD variable to something else).&lt;br /&gt;
&lt;br /&gt;
The easiest way is to put zip.exe into &amp;lt;tt&amp;gt;bin&amp;lt;/tt&amp;gt; inside your MinGW installation directory (that folder is normally in the path).&lt;br /&gt;
&lt;br /&gt;
=== Code::Blocks sources ===&lt;br /&gt;
&lt;br /&gt;
You will also (obviously) need the Code::Blocks sources. &lt;br /&gt;
&lt;br /&gt;
Using ''TortoiseSVN'', make a folder where you want to store the sources, right-click on the folder, and select &amp;quot;SVN Checkout...&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
!! The URL in this image is wrong !! Look at the description under the image:&lt;br /&gt;
&lt;br /&gt;
[[Image:Win svn checkout.png]]&lt;br /&gt;
&lt;br /&gt;
In the top box, enter svn://svn.code.sf.net/p/codeblocks/code/trunk and hit the OK button.&lt;br /&gt;
&lt;br /&gt;
Using ''svn'', you have to open a command prompt (&amp;quot;DOS Window&amp;quot;). Make a folder, change directory, and run svn:&lt;br /&gt;
&lt;br /&gt;
 mkdir codeblocks-head&lt;br /&gt;
 cd codeblocks-head&lt;br /&gt;
 svn checkout &amp;lt;nowiki&amp;gt;svn://svn.code.sf.net/p/codeblocks/code/trunk&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Unicode Build ==&lt;br /&gt;
&lt;br /&gt;
=== Compile wxWidgets in Unicode mode ===&lt;br /&gt;
&lt;br /&gt;
After unpacking the zip file to a directory of your choice, open a cmd prompt, and navigate to the folder build/msw inside the wxWidgets folder. Use the following commands to compile wxWidgets:&lt;br /&gt;
&lt;br /&gt;
 set path=c:\mingw\bin;c:\mingw\mingw32\bin&lt;br /&gt;
 mingw32-make -f makefile.gcc SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1  clean&lt;br /&gt;
 mingw32-make -f makefile.gcc SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1&lt;br /&gt;
&lt;br /&gt;
This assumes your MinGW installation is in C:\mingw. Use a different path if you installed MinGW somewhere else.&lt;br /&gt;
&lt;br /&gt;
You will see a lot of warning messages during compilation. Don't worry, this is normal, you are compiling wxWidgets. The build process may take 10-30 minutes, depending on your computer's speed.&lt;br /&gt;
&lt;br /&gt;
If you are using a recent version of MinGW you may find that the object files are too large and that the linker runs out of memory. To fix this problem you need to edit config.gcc so that inline functions are not exported, by modifying the CFLAGS and CXXFLAGS lines to:&lt;br /&gt;
&lt;br /&gt;
  CFLAGS ?= -fno-keep-inline-dllexport&lt;br /&gt;
&lt;br /&gt;
  CXXFLAGS ?= -fno-keep-inline-dllexport&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''remark: If you want to use wxWidgets not only for building Code::Blocks, but also for writing wxWidgets programs, and if you want to use the debugger in those programs, you have to compile a debug build of wxWidgets as well.''&lt;br /&gt;
''Use the same commands as for the release build, but replace &amp;quot;release&amp;quot; by &amp;quot;debug&amp;quot;.''&lt;br /&gt;
&lt;br /&gt;
'''Optional:'''&lt;br /&gt;
&lt;br /&gt;
To reduce the size of your wxWidgets library, you can disable features which are not used by Code::Blocks. However, you should not do this unless you know what you are doing. You have to delete the generated setup.h from lib/gcc_dll/msw/wx before building, because your changes to include/wx/msw will otherwise not be honoured.&lt;br /&gt;
&lt;br /&gt;
=== Compile Code::Blocks ===&lt;br /&gt;
Now, before this step, you have prepared all the stuff to build code::blocks. It's very interesting that we use code::blocks to build code::blocks binaries.&lt;br /&gt;
&lt;br /&gt;
==== Open project====&lt;br /&gt;
Open the project file '''CodeBlocks.cbp'''. You will be prompted to define the global variable $(#wx). Enter the location where you unpacked wxWidgets.&lt;br /&gt;
&lt;br /&gt;
[[Image:Global_variable.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Global_variable2.png]]&lt;br /&gt;
&lt;br /&gt;
====Compile project====&lt;br /&gt;
Hit the blue gear and lean back. Compilation may take 3-5 minutes, depending on the speed of your computer.&lt;br /&gt;
&lt;br /&gt;
[[Image:Win build button.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Win build target.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Win build finish.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Copy wxWidgets support DLL====&lt;br /&gt;
After the compilation has finished, copy &amp;lt;tt&amp;gt;lib\gcc_dll\wxmsw28u_gcc_custom.dll&amp;lt;/tt&amp;gt; from the wxWidgets directory to the &amp;lt;tt&amp;gt;src\devel&amp;lt;/tt&amp;gt; directory inside the Code::Blocks source folder (it will also work if you keep a copy of that library in your Windows folder or anywhere in your system path, but this is generally not recommended because you can get into dll hell).&lt;br /&gt;
&lt;br /&gt;
[[Image:Win output folder.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Win copy dll.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Runing script file====&lt;br /&gt;
Run &amp;lt;tt&amp;gt;src\update.bat&amp;lt;/tt&amp;gt; (located in the root source directory). This will pack the resource files and copy libraries and plugins to their correct locations.&lt;br /&gt;
&lt;br /&gt;
[[Image:Win run bat.png]]&lt;br /&gt;
&lt;br /&gt;
The stripped (&amp;quot;production&amp;quot;) executable is found in &amp;lt;tt&amp;gt;output&amp;lt;/tt&amp;gt; folder together with all libraries and data files. If you want a version with debug symbols instead (caution: huge size!), use the one found in the &amp;lt;tt&amp;gt;devel&amp;lt;/tt&amp;gt; folder.&amp;lt;br&amp;gt;&lt;br /&gt;
Congratulations, you own a freshly built version of Code::Blocks!&lt;br /&gt;
&lt;br /&gt;
[[Image:Win final folder.png]]&lt;br /&gt;
&lt;br /&gt;
====Note for future updates====&lt;br /&gt;
Go to the Code::Blocks root directory and run &amp;lt;tt&amp;gt;svn update&amp;lt;/tt&amp;gt; (or use TurtoiseSVN to the same effect).&amp;lt;br/&amp;gt;&lt;br /&gt;
Then open and build the project as described before (and any contrib plugins that you wish to use), and re-run &amp;lt;tt&amp;gt;src\update.bat&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Install Code::Blocks ===&lt;br /&gt;
&lt;br /&gt;
Copy the folder output to where you want Code::Blocks to reside.&lt;br /&gt;
&lt;br /&gt;
=== Compile contributed (or your own) plugins ===&lt;br /&gt;
&lt;br /&gt;
The workspace file '''ContribPlugins.workspace''' contains the project files for all contributed plugins. Open that workspace and compile the plugins which you would like to use (or select &amp;quot;Build Workspace&amp;quot; from the context menu if you want them all).&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Contribute plugin.png]]&lt;br /&gt;
&lt;br /&gt;
When you open the contrib plugins workspace, you will be asked to define the &amp;lt;tt&amp;gt;$(#cb)&amp;lt;/tt&amp;gt; global compiler variable. This is the path that contains the sdk folder normally this is codeblocks\src. The build process uses this information to place the plugins and data files into the correct place. Enter the location of the Code::Blocks sources in the same way as for the &amp;lt;tt&amp;gt;$(#wx)&amp;lt;/tt&amp;gt; variable earlier.&lt;br /&gt;
&lt;br /&gt;
Don't forget to run update.bat again after building the contrib plugins.&lt;br /&gt;
&lt;br /&gt;
== ANSI Build ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f7d9d9; border: 1px solid #000&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== DEPRECATION WARNING: ====&lt;br /&gt;
As of February 2006, the official default build for Code::Blocks is '''Unicode''' (see above). Although ANSI builds are technically possible, we discourage their use unless there is a good reason.&amp;lt;br/&amp;gt;&lt;br /&gt;
''Support for ANSI builds is likely to be dropped after Version 1.0 is out.''&lt;br /&gt;
&lt;br /&gt;
There is hardly any good argument against using a Unicode build if your OS supports Unicode, even if you do not understand any other language than English, as a Unicode version guarantees that it will be able to work with whatever languages you may possibly encounter in the future -- at a very reasonable cost.&lt;br /&gt;
&lt;br /&gt;
However, if you absolutely don't care about Unicode or if you are bound to use Windows 95, then you may want to build an ANSI version nevertheless.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Compile wxWidgets in ANSI mode ====&lt;br /&gt;
&lt;br /&gt;
After unpacking the zip file to a directory of your choice, open a cmd prompt, and navigate to the folder build/msw inside the wxWidgets folder. Use the following commands to compile wxWidgets&lt;br /&gt;
&lt;br /&gt;
 set path=c:\mingw\bin;c:\mingw\mingw32\bin&lt;br /&gt;
 mingw32-make -f makefile.gcc SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=0 clean&lt;br /&gt;
 mingw32-make -f makefile.gcc SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=0&lt;br /&gt;
&lt;br /&gt;
This assumes your MinGW installation is in C:\mingw. Use a different path if you installed MinGW somewhere else.&lt;br /&gt;
&lt;br /&gt;
You will see a lot of warning messages during compilation. Don't worry, this is normal, you are compiling wxWidgets. The build process may take 10-30 minutes, depending on your computer's speed.&lt;br /&gt;
&lt;br /&gt;
'''Optional:'''&lt;br /&gt;
&lt;br /&gt;
To reduce the size of your wxWidgets library, you can disable features which are not used by Code::Blocks. However, you should not do this unless you know what you are doing. You have to delete the generated setup.h from lib/gcc_dll/msw/wx before building, because your changes to include/wx/msw will otherwise not be honoured.&lt;br /&gt;
&lt;br /&gt;
==== Compile Code::Blocks ====&lt;br /&gt;
&lt;br /&gt;
Open the project CodeBlocks.cbp. You will be prompted to define the global variable $(#wx) if you have not used it before. Enter the location where you unpacked wxWidgets.&lt;br /&gt;
&lt;br /&gt;
'''Important:'''  The project file is set to compile an Unicode version of Code::Blocks by default. To make an ANSI build, you have to make the following two changes to build options before compiling:&lt;br /&gt;
1. In the &amp;quot;Compiler&amp;quot; tab, under &amp;quot;#defines&amp;quot;, remove the entry wxUSE_UNICODE.&lt;br /&gt;
2. Under &amp;quot;Custom variables&amp;quot;, set the variable WX_SUFFIX to empty (default value: u).&lt;br /&gt;
&lt;br /&gt;
Hit the blue gear and lean back. Compilation may take 3-5 minutes, depending on the speed of your computer.&lt;br /&gt;
&lt;br /&gt;
After the compilation has finished, copy wxmsw28u_gcc_custom.dll from lib\gcc_dll inside the wxWidgets directory to the devel directory inside the Code::Blocks source folder (it will also work if you keep a copy of that library in your Windows folder or anywhere in your system path, but this is generally not recommended because you can get into [[wikipedia:DLL Hell|dll hell]]).&lt;br /&gt;
Run update.bat (located in the root source directory). This will pack the resource files and copy libraries and plugins to their correct locations.&lt;br /&gt;
The location of executable is src\output in C::B tree. From here you'll not need the nightly build anymore.&lt;br /&gt;
&lt;br /&gt;
One little note for svn updates and rebuilds : just go into the codeblocks root directory and do '''svn update''' (or use Turtoise svn).&lt;br /&gt;
&lt;br /&gt;
Then run the src/output/codeblocks.exe, reload project, build it, reload plugins workspace, build it, quit codeblocks and re-run update.bat. You'll have an up-to-date C::B in 3 minutes !&lt;br /&gt;
&lt;br /&gt;
==== Install Code::Blocks ====&lt;br /&gt;
&lt;br /&gt;
Copy the folder output to where you want Code::Blocks to reside.&lt;br /&gt;
&lt;br /&gt;
==== Compile contributed (or your own) plugins ====&lt;br /&gt;
&lt;br /&gt;
The workspace file ContribPlugins.workspace contains the project files for all contributed plugins. Open that workspace and compile the plugins which you would like to use (or select &amp;quot;Build Workspace&amp;quot; from the context menu if you want them all). Don't forget to run update.bat again after building the contrib plugins.&lt;br /&gt;
&lt;br /&gt;
Note that the Nassi Shneiderman plugin (part of the contrib plugins) has a dependency on [http://www.boost.org boost] which is needed to compile this plugin. Boost does not need to be compiled therefore.&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Installing_Code::Blocks_from_source_on_Windows&amp;diff=7635</id>
		<title>Installing Code::Blocks from source on Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Installing_Code::Blocks_from_source_on_Windows&amp;diff=7635"/>
		<updated>2013-07-21T14:40:55Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: fixed svn url&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Installing Code::Blocks]]&lt;br /&gt;
[[Category:Installing Code::Blocks from source]]&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
=== Note for RC2 users ===&lt;br /&gt;
&lt;br /&gt;
The older Code::Blocks RC2 does not support global compiler variables which were added after RC2 was released and is unable to read project files generated with post-RC2 versions.&lt;br /&gt;
To build Code::Blocks, you need a post-RC2 build, such as ''8.02'' or any of the ''nightly builds'' obtainable by [/index.php?board=20.0 searching the forum].&lt;br /&gt;
&lt;br /&gt;
=== MinGW compiler ===&lt;br /&gt;
&lt;br /&gt;
At the present time, Code::Blocks only compiles successfully with the MinGW compiler (or any other gcc for that matter). You will need a complete, working [[MinGW installation]] or [http://www.tdragon.net/recentgcc/ TDM-MinGW package]. &lt;br /&gt;
&lt;br /&gt;
'''Do not''' use the barebones MinGW with GCC 4.5.1 as you'll run (with this specific version) into [http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43601 a linker bug] (which happened to me on Vista SP1 32-bit on 2011-02-28); the solution is to use the TDM-GCC 4.5.1 package, or later.&lt;br /&gt;
&lt;br /&gt;
=== wxWidgets ===&lt;br /&gt;
&lt;br /&gt;
[http://www.wxwidgets.org/ wxWidgets.org]&lt;br /&gt;
&lt;br /&gt;
Code::Blocks uses&lt;br /&gt;
* since 02 April 2011 wxWidgets 2.8.12 &amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.12.zip wxMSW-2.8.12.zip]&lt;br /&gt;
&lt;br /&gt;
* since 28 March 2009 wxWidgets 2.8.10 &amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.10.zip wxMSW-2.8.10.zip]&lt;br /&gt;
&lt;br /&gt;
* since 18 October 2008 wxWidgets 2.8.9 &amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.9.zip wxMSW-2.8.9.zip]&lt;br /&gt;
&lt;br /&gt;
* since 19 July 2008 wxWidgets 2.8.8 &amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.8.zip wxMSW-2.8.8.zip]&lt;br /&gt;
&lt;br /&gt;
* since 28 November 2007 wxWidgets 2.8.7 &amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.7.zip wxMSW-2.8.7.zip]&lt;br /&gt;
&lt;br /&gt;
* since November 2007 wxWidgets 2.8.6 &amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.6.zip wxMSW-2.8.6.zip]&lt;br /&gt;
&lt;br /&gt;
* since May 2007 wxWidgets 2.8.4&amp;lt;br/&amp;gt;Download: [http://prdownloads.sourceforge.net/wxwindows/wxMSW-2.8.4.zip wxMSW-2.8.4.zip]&lt;br /&gt;
&lt;br /&gt;
For latest infos check forum: [/index.php?topic=3299.0 Important changes to the nightly builds]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You do ''not'' need MSYS (''in fact, if you have MSYS, make sure it is not in your PATH when building wxWidgets'').&lt;br /&gt;
&lt;br /&gt;
=== SVN client ===&lt;br /&gt;
&lt;br /&gt;
In order to check out the Code::Blocks sources you will need a SVN client.&lt;br /&gt;
For convenience, it is recommended that you install [http://tortoisesvn.net/downloads TortoiseSVN] on your machine, as this is a lot more comfortable. However, if you get a bad feeling when some program is messing with your Explorer menu, then you can use the [http://subversion.tigris.org/project_packages.html svn command-line client] equally well.&lt;br /&gt;
&lt;br /&gt;
It is generally a good idea to install the command-line client (and adding it to PATH) even if you use TortoiseSVN for convenience. The &amp;lt;tt&amp;gt;autorevision&amp;lt;/tt&amp;gt; tool which is used during the build of Code::Blocks makes use of the &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; binary if it is available. This is preferable to the manual parsing of the entries file that is used as fall-back.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please do note that working copies checked out with the 1.4 version of Subversion are no longer compatible with earlier versions (Subversion will transparently update existing repositories).&lt;br /&gt;
&lt;br /&gt;
The built-in fall-back mechanism in &amp;lt;tt&amp;gt;autorevision&amp;lt;/tt&amp;gt; has been updated to the new 1.4 format and will no longer work with the old format.&amp;lt;br&amp;gt;&lt;br /&gt;
Therefore, if you use a Subversion client from the 1.0-1.3 line, you ''must'' put the command line tool into &amp;lt;tt&amp;gt;PATH&amp;lt;/tt&amp;gt; for a successful build.&amp;lt;br&amp;gt;&lt;br /&gt;
If you use Subversion 1.4, then it is good practice nevertheless, but you can do without, too.&lt;br /&gt;
&lt;br /&gt;
=== svn.exe ===&lt;br /&gt;
If you want to show the SVN number in your code::blocks dialog box.&lt;br /&gt;
&lt;br /&gt;
[[Image:Svn number.png|300*300px]]&lt;br /&gt;
&lt;br /&gt;
You should also let svn.exe exist in the PATH of your windows system.&lt;br /&gt;
A command line SVN package can be download here [http://www.open.collab.net/downloads/subversion/ CollabNet Subversion Command-Line Client v1.6 (for Windows)].&lt;br /&gt;
&lt;br /&gt;
=== zip.exe ===&lt;br /&gt;
&lt;br /&gt;
You'll also need a working 'zip' program.&lt;br /&gt;
If you have the version listed on our [[MinGW installation#Other developer tools|tools page]], you'll be fine.&lt;br /&gt;
&lt;br /&gt;
The zip program coming with cygwin will ''not'' work properly. You do ''not'' need WinZip.&lt;br /&gt;
&lt;br /&gt;
Make sure the zip binary is in your PATH so the &amp;lt;tt&amp;gt;update.bat&amp;lt;/tt&amp;gt; script will be able to find it (alternatively, you can edit the batch file, setting the ZIPCMD variable to something else).&lt;br /&gt;
&lt;br /&gt;
The easiest way is to put zip.exe into &amp;lt;tt&amp;gt;bin&amp;lt;/tt&amp;gt; inside your MinGW installation directory (that folder is normally in the path).&lt;br /&gt;
&lt;br /&gt;
=== Code::Blocks sources ===&lt;br /&gt;
&lt;br /&gt;
You will also (obviously) need the Code::Blocks sources. &lt;br /&gt;
&lt;br /&gt;
Using ''TortoiseSVN'', make a folder where you want to store the sources, right-click on the folder, and select &amp;quot;SVN Checkout...&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[Image:Win svn checkout.png]]&lt;br /&gt;
&lt;br /&gt;
In the top box, enter svn://svn.code.sf.net/p/codeblocks/code/trunk and hit the OK button.&lt;br /&gt;
&lt;br /&gt;
Using ''svn'', you have to open a command prompt (&amp;quot;DOS Window&amp;quot;). Make a folder, change directory, and run svn:&lt;br /&gt;
&lt;br /&gt;
 mkdir codeblocks-head&lt;br /&gt;
 cd codeblocks-head&lt;br /&gt;
 svn checkout &amp;lt;nowiki&amp;gt;svn://svn.code.sf.net/p/codeblocks/code/trunk&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Unicode Build ==&lt;br /&gt;
&lt;br /&gt;
=== Compile wxWidgets in Unicode mode ===&lt;br /&gt;
&lt;br /&gt;
After unpacking the zip file to a directory of your choice, open a cmd prompt, and navigate to the folder build/msw inside the wxWidgets folder. Use the following commands to compile wxWidgets:&lt;br /&gt;
&lt;br /&gt;
 set path=c:\mingw\bin;c:\mingw\mingw32\bin&lt;br /&gt;
 mingw32-make -f makefile.gcc SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1  clean&lt;br /&gt;
 mingw32-make -f makefile.gcc SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1&lt;br /&gt;
&lt;br /&gt;
This assumes your MinGW installation is in C:\mingw. Use a different path if you installed MinGW somewhere else.&lt;br /&gt;
&lt;br /&gt;
You will see a lot of warning messages during compilation. Don't worry, this is normal, you are compiling wxWidgets. The build process may take 10-30 minutes, depending on your computer's speed.&lt;br /&gt;
&lt;br /&gt;
If you are using a recent version of MinGW you may find that the object files are too large and that the linker runs out of memory. To fix this problem you need to edit config.gcc so that inline functions are not exported, by modifying the CFLAGS and CXXFLAGS lines to:&lt;br /&gt;
&lt;br /&gt;
  CFLAGS ?= -fno-keep-inline-dllexport&lt;br /&gt;
&lt;br /&gt;
  CXXFLAGS ?= -fno-keep-inline-dllexport&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''remark: If you want to use wxWidgets not only for building Code::Blocks, but also for writing wxWidgets programs, and if you want to use the debugger in those programs, you have to compile a debug build of wxWidgets as well.''&lt;br /&gt;
''Use the same commands as for the release build, but replace &amp;quot;release&amp;quot; by &amp;quot;debug&amp;quot;.''&lt;br /&gt;
&lt;br /&gt;
'''Optional:'''&lt;br /&gt;
&lt;br /&gt;
To reduce the size of your wxWidgets library, you can disable features which are not used by Code::Blocks. However, you should not do this unless you know what you are doing. You have to delete the generated setup.h from lib/gcc_dll/msw/wx before building, because your changes to include/wx/msw will otherwise not be honoured.&lt;br /&gt;
&lt;br /&gt;
=== Compile Code::Blocks ===&lt;br /&gt;
Now, before this step, you have prepared all the stuff to build code::blocks. It's very interesting that we use code::blocks to build code::blocks binaries.&lt;br /&gt;
&lt;br /&gt;
==== Open project====&lt;br /&gt;
Open the project file '''CodeBlocks.cbp'''. You will be prompted to define the global variable $(#wx). Enter the location where you unpacked wxWidgets.&lt;br /&gt;
&lt;br /&gt;
[[Image:Global_variable.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Global_variable2.png]]&lt;br /&gt;
&lt;br /&gt;
====Compile project====&lt;br /&gt;
Hit the blue gear and lean back. Compilation may take 3-5 minutes, depending on the speed of your computer.&lt;br /&gt;
&lt;br /&gt;
[[Image:Win build button.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Win build target.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Win build finish.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Copy wxWidgets support DLL====&lt;br /&gt;
After the compilation has finished, copy &amp;lt;tt&amp;gt;lib\gcc_dll\wxmsw28u_gcc_custom.dll&amp;lt;/tt&amp;gt; from the wxWidgets directory to the &amp;lt;tt&amp;gt;src\devel&amp;lt;/tt&amp;gt; directory inside the Code::Blocks source folder (it will also work if you keep a copy of that library in your Windows folder or anywhere in your system path, but this is generally not recommended because you can get into dll hell).&lt;br /&gt;
&lt;br /&gt;
[[Image:Win output folder.png]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Win copy dll.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Runing script file====&lt;br /&gt;
Run &amp;lt;tt&amp;gt;src\update.bat&amp;lt;/tt&amp;gt; (located in the root source directory). This will pack the resource files and copy libraries and plugins to their correct locations.&lt;br /&gt;
&lt;br /&gt;
[[Image:Win run bat.png]]&lt;br /&gt;
&lt;br /&gt;
The stripped (&amp;quot;production&amp;quot;) executable is found in &amp;lt;tt&amp;gt;output&amp;lt;/tt&amp;gt; folder together with all libraries and data files. If you want a version with debug symbols instead (caution: huge size!), use the one found in the &amp;lt;tt&amp;gt;devel&amp;lt;/tt&amp;gt; folder.&amp;lt;br&amp;gt;&lt;br /&gt;
Congratulations, you own a freshly built version of Code::Blocks!&lt;br /&gt;
&lt;br /&gt;
[[Image:Win final folder.png]]&lt;br /&gt;
&lt;br /&gt;
====Note for future updates====&lt;br /&gt;
Go to the Code::Blocks root directory and run &amp;lt;tt&amp;gt;svn update&amp;lt;/tt&amp;gt; (or use TurtoiseSVN to the same effect).&amp;lt;br/&amp;gt;&lt;br /&gt;
Then open and build the project as described before (and any contrib plugins that you wish to use), and re-run &amp;lt;tt&amp;gt;src\update.bat&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Install Code::Blocks ===&lt;br /&gt;
&lt;br /&gt;
Copy the folder output to where you want Code::Blocks to reside.&lt;br /&gt;
&lt;br /&gt;
=== Compile contributed (or your own) plugins ===&lt;br /&gt;
&lt;br /&gt;
The workspace file '''ContribPlugins.workspace''' contains the project files for all contributed plugins. Open that workspace and compile the plugins which you would like to use (or select &amp;quot;Build Workspace&amp;quot; from the context menu if you want them all).&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Contribute plugin.png]]&lt;br /&gt;
&lt;br /&gt;
When you open the contrib plugins workspace, you will be asked to define the &amp;lt;tt&amp;gt;$(#cb)&amp;lt;/tt&amp;gt; global compiler variable. This is the path that contains the sdk folder normally this is codeblocks\src. The build process uses this information to place the plugins and data files into the correct place. Enter the location of the Code::Blocks sources in the same way as for the &amp;lt;tt&amp;gt;$(#wx)&amp;lt;/tt&amp;gt; variable earlier.&lt;br /&gt;
&lt;br /&gt;
Don't forget to run update.bat again after building the contrib plugins.&lt;br /&gt;
&lt;br /&gt;
== ANSI Build ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f7d9d9; border: 1px solid #000&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== DEPRECATION WARNING: ====&lt;br /&gt;
As of February 2006, the official default build for Code::Blocks is '''Unicode''' (see above). Although ANSI builds are technically possible, we discourage their use unless there is a good reason.&amp;lt;br/&amp;gt;&lt;br /&gt;
''Support for ANSI builds is likely to be dropped after Version 1.0 is out.''&lt;br /&gt;
&lt;br /&gt;
There is hardly any good argument against using a Unicode build if your OS supports Unicode, even if you do not understand any other language than English, as a Unicode version guarantees that it will be able to work with whatever languages you may possibly encounter in the future -- at a very reasonable cost.&lt;br /&gt;
&lt;br /&gt;
However, if you absolutely don't care about Unicode or if you are bound to use Windows 95, then you may want to build an ANSI version nevertheless.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Compile wxWidgets in ANSI mode ====&lt;br /&gt;
&lt;br /&gt;
After unpacking the zip file to a directory of your choice, open a cmd prompt, and navigate to the folder build/msw inside the wxWidgets folder. Use the following commands to compile wxWidgets&lt;br /&gt;
&lt;br /&gt;
 set path=c:\mingw\bin;c:\mingw\mingw32\bin&lt;br /&gt;
 mingw32-make -f makefile.gcc SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=0 clean&lt;br /&gt;
 mingw32-make -f makefile.gcc SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=0&lt;br /&gt;
&lt;br /&gt;
This assumes your MinGW installation is in C:\mingw. Use a different path if you installed MinGW somewhere else.&lt;br /&gt;
&lt;br /&gt;
You will see a lot of warning messages during compilation. Don't worry, this is normal, you are compiling wxWidgets. The build process may take 10-30 minutes, depending on your computer's speed.&lt;br /&gt;
&lt;br /&gt;
'''Optional:'''&lt;br /&gt;
&lt;br /&gt;
To reduce the size of your wxWidgets library, you can disable features which are not used by Code::Blocks. However, you should not do this unless you know what you are doing. You have to delete the generated setup.h from lib/gcc_dll/msw/wx before building, because your changes to include/wx/msw will otherwise not be honoured.&lt;br /&gt;
&lt;br /&gt;
==== Compile Code::Blocks ====&lt;br /&gt;
&lt;br /&gt;
Open the project CodeBlocks.cbp. You will be prompted to define the global variable $(#wx) if you have not used it before. Enter the location where you unpacked wxWidgets.&lt;br /&gt;
&lt;br /&gt;
'''Important:'''  The project file is set to compile an Unicode version of Code::Blocks by default. To make an ANSI build, you have to make the following two changes to build options before compiling:&lt;br /&gt;
1. In the &amp;quot;Compiler&amp;quot; tab, under &amp;quot;#defines&amp;quot;, remove the entry wxUSE_UNICODE.&lt;br /&gt;
2. Under &amp;quot;Custom variables&amp;quot;, set the variable WX_SUFFIX to empty (default value: u).&lt;br /&gt;
&lt;br /&gt;
Hit the blue gear and lean back. Compilation may take 3-5 minutes, depending on the speed of your computer.&lt;br /&gt;
&lt;br /&gt;
After the compilation has finished, copy wxmsw28u_gcc_custom.dll from lib\gcc_dll inside the wxWidgets directory to the devel directory inside the Code::Blocks source folder (it will also work if you keep a copy of that library in your Windows folder or anywhere in your system path, but this is generally not recommended because you can get into [[wikipedia:DLL Hell|dll hell]]).&lt;br /&gt;
Run update.bat (located in the root source directory). This will pack the resource files and copy libraries and plugins to their correct locations.&lt;br /&gt;
The location of executable is src\output in C::B tree. From here you'll not need the nightly build anymore.&lt;br /&gt;
&lt;br /&gt;
One little note for svn updates and rebuilds : just go into the codeblocks root directory and do '''svn update''' (or use Turtoise svn).&lt;br /&gt;
&lt;br /&gt;
Then run the src/output/codeblocks.exe, reload project, build it, reload plugins workspace, build it, quit codeblocks and re-run update.bat. You'll have an up-to-date C::B in 3 minutes !&lt;br /&gt;
&lt;br /&gt;
==== Install Code::Blocks ====&lt;br /&gt;
&lt;br /&gt;
Copy the folder output to where you want Code::Blocks to reside.&lt;br /&gt;
&lt;br /&gt;
==== Compile contributed (or your own) plugins ====&lt;br /&gt;
&lt;br /&gt;
The workspace file ContribPlugins.workspace contains the project files for all contributed plugins. Open that workspace and compile the plugins which you would like to use (or select &amp;quot;Build Workspace&amp;quot; from the context menu if you want them all). Don't forget to run update.bat again after building the contrib plugins.&lt;br /&gt;
&lt;br /&gt;
Note that the Nassi Shneiderman plugin (part of the contrib plugins) has a dependency on [http://www.boost.org boost] which is needed to compile this plugin. Boost does not need to be compiled therefore.&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=FAQ-Compiling_(errors)&amp;diff=7546</id>
		<title>FAQ-Compiling (errors)</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=FAQ-Compiling_(errors)&amp;diff=7546"/>
		<updated>2013-03-12T18:16:38Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Documentation]]&lt;br /&gt;
__TOC__&lt;br /&gt;
Return to '''[[FAQ]]'''.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Q: How do I troubleshoot a compiler problem? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' I would start by turning on full Compiler logging.&lt;br /&gt;
&lt;br /&gt;
This is done by selecting the &amp;quot;Full command line&amp;quot; option Under menu &amp;quot;Settings&amp;quot; -&amp;gt; &amp;quot;Compiler&amp;quot; -&amp;gt; Global compiler settings -&amp;gt; [the compiler you use] -&amp;gt; &amp;quot;Other Setting&amp;quot; tab, &amp;quot;Compiler logging&amp;quot;. In 12.11 and newer this is enabled by default.&lt;br /&gt;
&lt;br /&gt;
This option will make Code::Blocks output the exact commands it uses to compile your code.&lt;br /&gt;
&lt;br /&gt;
Things to remember:&lt;br /&gt;
&lt;br /&gt;
* You should review all the commands and their options;&lt;br /&gt;
* If you have compiled your app before, do a ''re-''build (or ''clean'' before build) to see all compiling / linking steps;&lt;br /&gt;
* If you don't know what an option or a command does please read the documentation for the compiler/linker you're using;&lt;br /&gt;
* Look for missing commands;&lt;br /&gt;
* For every source file (&amp;lt;tt&amp;gt;.cpp&amp;lt;/tt&amp;gt;; &amp;lt;tt&amp;gt;.c&amp;lt;/tt&amp;gt;; &amp;lt;tt&amp;gt;.d&amp;lt;/tt&amp;gt;; etc) in your project, you must have at least one command in the log. This command must produce an object file (file extension &amp;lt;tt&amp;gt;.o&amp;lt;/tt&amp;gt; if using gcc/g++ and &amp;lt;tt&amp;gt;.obj&amp;lt;/tt&amp;gt; if using Visual Studio);&lt;br /&gt;
* Every object file should be linked in the final executable, if not there are undefined symbols errors;&lt;br /&gt;
* Remember the file extension matters: &amp;lt;tt&amp;gt;*.c&amp;lt;/tt&amp;gt; is compiled as C file, &amp;lt;tt&amp;gt;*.cpp&amp;lt;/tt&amp;gt; is compiled as C++ file. [http://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html Read more]&lt;br /&gt;
&lt;br /&gt;
==== Q: What do I need to know when using 3rd party libs? ====&lt;br /&gt;
Here are some basics about typical mistakes done when working with third party libs, including wxWidgets. The following is valid for ''every'' third party SDK / toolbox / component you want to use and describes what steps your have to do:&lt;br /&gt;
&lt;br /&gt;
* Download the sources of the component OR a ready-to-use development version. The difference: While the first requires you to compile the component yourself is will definitely work with your compiler. The latter must be compiled in a compatible way: So a compatible compiler, compatible OS, compatible settings. Inspect the components docs about how to get what you want.&lt;br /&gt;
* Place the component sources and compiled parts anywhere you want It is not required to copy such parts to any other folder you might think - in fact, this may even be dangerous in case you overwrite existing files.&lt;br /&gt;
* Create a project where you want to use your component.&lt;br /&gt;
* In the ''compiler'' settings, point to the folder, where the include files of your component are. For WX this is special, as usually you include like #include &amp;lt;wx/foo.h&amp;gt;. So do ''not'' point to [Component_Folder]\include\wx, but to [Component_Folder]\include instead.&lt;br /&gt;
* Note that the compiler only needs to know the interfaces / classes / structures / methods, it will not throw an error about undefined references or alike. The compiler will only complain in case it cannot find references in terms of include files. If thats the case, adjust your project's compiler settings. Keep in mind that you do need to fulfil the requirements of your component itself, too. Thus, wxChart for example will need for wxWidgets, too. So - you may need to do the same process for wxWidgets, too before you can use wxChart - unless you have done that already.&lt;br /&gt;
* In the ''linker'' settings, point to the folder where you have your compiled library. A library usually ends with *.a or *.lib. Note that there are generally two types of libs: Static libs (after linking you are done) and Dynamic libs (where you link against an import lib but require another dynamic lib at runtime).&lt;br /&gt;
* In the linker settings add the library/libraries you need to link against in the ''right order'' to the list of libs to link against. ''Order matters'' - again, dependencies must be taken into account. Inspect the developers guide of the component to know the dependencies. On Windows, this may include the MSDN, too which tells you what libraries you need to link against for certain symbols you or the library may make use of.&lt;br /&gt;
* The linker will never complain about includes it cannot find. Because the linker just links object files or library files together. But the linker may complain about unresolved symbols which you need to provide. So if that happens, either your setup is missing a lib, or the order is wrong.&lt;br /&gt;
&lt;br /&gt;
Again, this is valid for all third party stuff you want to use. Its heavily ''platform'' and ''compiler'' dependent. The IDE should be less of concern for you. Every IDE can be setup in a way it will compile and link your stuff unless you provide everything needed as explained above.&lt;br /&gt;
&lt;br /&gt;
If you don't understand parts written here it is ''strongly'' recommended you start with a book about general programming in C/C++ that covers library handling in more detail.&lt;br /&gt;
&lt;br /&gt;
For the example wxChart in the end is not easy for starters. Usually you need to compile wxWidgets before, then wxChart and usually not all dependencies are explained in the docs and it behaves differently on different OS'es / compilers. Also, wcChart can be compiled in many flavours - so you need to make sure the flavour matches a) your needs and b) the way you compiled wxWidgets.&lt;br /&gt;
&lt;br /&gt;
==== Q: My simple C++ program throws up lots of errors - what is going on? ====&lt;br /&gt;
&lt;br /&gt;
If you have a C++ program like this:&lt;br /&gt;
&lt;br /&gt;
  #include &amp;lt;iostream&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;hello world\n&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
and when you compile it you get errors like this:&lt;br /&gt;
&lt;br /&gt;
  fatal error: iostream: No such file or directory&lt;br /&gt;
&lt;br /&gt;
then you have probably given your source file a .c extension. If you do that, the GCC compiler (and others) will probably attempt to compile the file as a C program, not as C++. You should always give your C++ source files the extension .cpp to make sure the compiler handles them correctly.&lt;br /&gt;
&lt;br /&gt;
==== Q: I imported a MSVCToolkit project/workspace, but Code::Blocks insists on trying to use GCC. What's wrong? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' A little documentation problem ^^;. The &amp;quot;default compiler&amp;quot; is usually GCC, so when you imported it with &amp;quot;the default compiler&amp;quot;, you told it to use GCC. To fix this situation, go to &amp;quot;Project&amp;quot;, &amp;quot;Build Options&amp;quot; and select VC++ Toolkit as your compiler.&lt;br /&gt;
&lt;br /&gt;
Another possibility is to put the Microsoft compiler as the default one.  To do this, choose '''''Settings - Compiler''''', choose the Microsoft compiler in the '''''Selected Compiler''''' section (top of dialog box) and press the '''''Set as default''''' button.&lt;br /&gt;
&lt;br /&gt;
From now onwards, for all new projects the Microsoft compiler will be taken by default.&lt;br /&gt;
&lt;br /&gt;
==== Q: When compiling a wxWidgets project, I get several &amp;quot;variable 'vtable for xxxx' can't be auto-imported&amp;quot;. What's wrong? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' You need to add WXUSINGDLL in &amp;quot;Project-&amp;gt;Build options-&amp;gt;Compiler #defines&amp;quot; and rebuild your project (or create a new project and use the &amp;quot;Using wxWidgets DLL&amp;quot; project option which adds &amp;quot;-DWXUSINGDLL&amp;quot; to Project-&amp;gt;Build options-&amp;gt;Other options).&lt;br /&gt;
Other errors with the same resolution are:&lt;br /&gt;
'unresolved external symbol &amp;quot;char const * const wxEmptyString&amp;quot; (?wxEmptyString@@3PBDB)' or similar.&lt;br /&gt;
If you were using 1.0-finalbeta and were trying to build a statically linked wxWidgets project, the cause of the problem was some faulty templates. But that's fixed now.&lt;br /&gt;
&lt;br /&gt;
==== Q: I can't compile a multithreaded app with VC Toolkit! Where are the libraries? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Sorry, no fix for your problem...&lt;br /&gt;
&lt;br /&gt;
Your problem doesn't come from CodeBlocks. It exists, because the free VC toolkit (VCTK) doesn't provide all the libraries and tools which come with Visual C++ (VC) which isn't free, unfortunately.&lt;br /&gt;
&lt;br /&gt;
Try buying a full-fledged VC++, or even better, download [http://www.mingw.org/ MinGW]&lt;br /&gt;
&lt;br /&gt;
The libraries that can be obtained free of charge are:&lt;br /&gt;
&lt;br /&gt;
Paths:&lt;br /&gt;
 (VCT3) Visual C++ Toolkit 2003 - C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib&lt;br /&gt;
 (PSDK) Platform SDK - C:\Program Files\Microsoft Platform SDK\Lib&lt;br /&gt;
 (NSDK) .NET 1.1 SDK - C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib&lt;br /&gt;
&lt;br /&gt;
C runtime libs:&lt;br /&gt;
 LIBC.LIB 	Single-threaded, static link                                          (VCT3, NSDK)&lt;br /&gt;
 LIBCMT.LIB 	Multithreaded, static link                                            (VCT3, NSDK)&lt;br /&gt;
 MSVCRT.LIB 	Multithreaded, dynamic link (import library for MSVCR71.DLL)          (NSDK)&lt;br /&gt;
 LIBCD.LIB 	Single-threaded, static link (debug)                                  (VCT3, NSDK)&lt;br /&gt;
 LIBCMTD.LIB 	Multithreaded, static link (debug)                                    (NSDK)&lt;br /&gt;
 MSVCRTD.LIB 	Multithreaded, dynamic link (import library for MSVCR71D.DLL) (debug) (NSDK)&lt;br /&gt;
&lt;br /&gt;
C++ libs:&lt;br /&gt;
 LIBCP.LIB 	Single-threaded, static link                                          (VCT3, PSDK)&lt;br /&gt;
 LIBCPMT.LIB 	Multithreaded, static link                                            (VCT3)&lt;br /&gt;
 MSVCPRT.LIB 	Multithreaded, dynamic link (import library for MSVCP71.dll)          (none)&lt;br /&gt;
 LIBCPD.LIB 	Single-threaded, static link (debug)                                  (VCT3)&lt;br /&gt;
 LIBCPMTD.LIB 	Multithreaded, static link (debug)                                    (none)&lt;br /&gt;
 MSVCPRTD.LIB 	Multithreaded, dynamic link (import library for MSVCP71D.DLL) (debug) (none)&lt;br /&gt;
&lt;br /&gt;
Try setting the library linker directories to:&lt;br /&gt;
 C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib&lt;br /&gt;
 C:\Program Files\Microsoft Platform SDK\Lib&lt;br /&gt;
 C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib&lt;br /&gt;
in that order.&lt;br /&gt;
&lt;br /&gt;
The ones listed as (none) above are actually present in the IA64 and AMD64 subdirectories of the PSDK lib directory.  Not sure if these would work on 32-bit windows, however, they may if they are&lt;br /&gt;
meant to work in 32-bit compatibility mode on the 64-bit processors.  Worth a try.  Otherwise, you&lt;br /&gt;
can link statically to the C++ library instead of using MSVCP71.dll.  If you really want to link against MSVCP71.dll you can try to create MSVCP71.LIB from the dll using lib.exe and sed.  Search google for &amp;quot;exports.sed&amp;quot; for detailed steps.&lt;br /&gt;
&lt;br /&gt;
See also: [http://wiki.tcl.tk/2435 tclsh script to extract import .lib from (any?) DLL (MinGW)]&lt;br /&gt;
&lt;br /&gt;
See also: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_c_run.2d.time_libraries.asp&lt;br /&gt;
&lt;br /&gt;
See also: http://sapdb.2scale.net/moin.cgi/MS_20C_2b_2b_20Toolkit&lt;br /&gt;
&lt;br /&gt;
==== Q: I get this error when compiling: Symbol &amp;quot;isascii&amp;quot; was not found in &amp;quot;codeblocks.dll&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Make sure you didn't mix up the MSVC headers or libs with the MinGW ones.&lt;br /&gt;
&lt;br /&gt;
==== Q: My build fails with multiple ''undefined reference'' errors? ====&lt;br /&gt;
&lt;br /&gt;
''Example:''&lt;br /&gt;
 undefined reference to `WSACleanup@8&lt;br /&gt;
 undefined reference to `WSACleanup@0&lt;br /&gt;
&lt;br /&gt;
'''A:''' Most of the time it is because the required library is not linked with your project. Go to ''Project-&amp;gt;Build options...-&amp;gt;Linker settings (tab)'' and add the required library or libraries.&lt;br /&gt;
&lt;br /&gt;
If the error includes a line number, it is likely that this is a problem with your code. Track down down your function declarations and implementations. Ensure they all match up, are spelled correctly, and have the correct scope resolution.&lt;br /&gt;
&lt;br /&gt;
''VERY'' often you can get help by just googling for the name of the undefined reference, for this example its &amp;quot;WSACleanup&amp;quot;. Usually one of the first links is the SDK documentation, like [http://msdn.microsoft.com/en-us/library/windows/desktop/ms741549%28v=vs.85%29.aspx this from MSDN for WSACleanup]. You'll find there a lot useful information, including what libraries you need to link against, as for the exsample:&lt;br /&gt;
'''Requirements'''&lt;br /&gt;
* Minimum supported client: Windows 2000 Professional&lt;br /&gt;
* Minimum supported server: Windows 2000 Server&lt;br /&gt;
* Header: '''Winsock2.h'''&lt;br /&gt;
* Library: '''Ws2_32'''.lib&lt;br /&gt;
* DLL: '''Ws2_32.dll'''&lt;br /&gt;
The header file '''Winsock2.h''' you need to include in your sources. Most likely you have done that already because otherwise you would have gotten a compiler error unable to find the function declaration. The library you need to link against, you can remove any prefix like &amp;quot;lib&amp;quot; and the file extension like &amp;quot;.lib&amp;quot;, &amp;quot;.a&amp;quot; or &amp;quot;.so&amp;quot; - so just type &amp;quot;'''Ws2_32'''&amp;quot; in the linker options. Also make sure you have added the path to that library in the linker include path's options, otherwise the linker will complain that it cannot find that library you want to link against. You also know, that you should distribute '''Ws2_32.dll''' for the runtime version of you app, luckily this one usually ships with Windows anyways, so no need to do something here.&lt;br /&gt;
&lt;br /&gt;
==== Q: My build fails in the compile/link/run step with a ''Permission denied'' error? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' There are several possible causes for this:&lt;br /&gt;
&lt;br /&gt;
# The output directory does not have read/write access.&lt;br /&gt;
#* Either change control settings on the output directory, or move the project to different location.&lt;br /&gt;
# A previous instance of the executable failed to terminate properly.&lt;br /&gt;
#* Open your system's equivalent of Process/Task Manager, search the list for the name of the executable Code::Blocks is trying to output, and terminate it.&lt;br /&gt;
#* Logging off or rebooting will achieve the same effect.&lt;br /&gt;
# The executable is open.&lt;br /&gt;
#* If the executable is open in a hex-editor or actively being run, close it.&lt;br /&gt;
# Security software is interfering.&lt;br /&gt;
#* The target file is locked while an antivirus programming is scanning it; either wait a few seconds for the antivirus scan to finish, set an exception in the antivirus settings, or (temporarily) disable the antivirus program.&lt;br /&gt;
#* Firewalls with very strict settings sometimes block execution; try reducing the firewall's settings or adding an exception.&lt;br /&gt;
#* Switching security software may have left traces behind that are interfering; hunt down the remnants of the old antivirus/firewall software and remove them.&lt;br /&gt;
# The file/library cannot be found.&lt;br /&gt;
#* Double check all of the compiler and linker [[FAQ-Compiling (general)#Q: I would like to compile a project using some non-standard libraries. How can I indicate to CodeBlocks that these libraries and include files exist?|search directories]] (including any [[Global compiler variables|variables]] they may be using) are properly setup.&lt;br /&gt;
# Code::Blocks was improperly installed.&lt;br /&gt;
#* Mixing binaries from a stable release and a nightly build (or even two different nightly builds) is highly likely to cause a slew of problems; [[Installing Code::Blocks|reinstall Code::Blocks]] in an empty directory.&lt;br /&gt;
# Multiple installed compilers are interfering with each other.&lt;br /&gt;
#* If they are not required to keep, completely remove all but the most used compiler.&lt;br /&gt;
#* If several compilers are required, ensure that '''none''' of them are in the ''system'' path (this is so that Code::Blocks will be able to manage all paths).&lt;br /&gt;
#* Also, do not place any compilers in their default installation path (for example &amp;lt;tt&amp;gt;C:\MinGW&amp;lt;/tt&amp;gt;), as some compilers are hard-coded to look for headers in a default path ''before'' searching their own respective directories.&lt;br /&gt;
# On windows 7, the service &amp;quot;Application Experience&amp;quot; is not running [http://stackoverflow.com/questions/7655471/ld-exe-cannot-open-output-file-permission-denied#answer-7904469 as explained on stackoverflow].&lt;br /&gt;
See also: [/index.php/topic,15047.0.html Permission denied forums discussion]&lt;br /&gt;
&lt;br /&gt;
==== Q: My build fails to link due to ''multiple definition of xyz'' errors? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' GCC 4.6.1 mingw target (Windows) is known to occasionally (and erroneously) report this if link-time optimization (&amp;lt;tt&amp;gt;-flto&amp;lt;/tt&amp;gt;) is used.&lt;br /&gt;
&lt;br /&gt;
First, of course, check that no token has been defined multiple times. If the source code is clean, and yet the errors persist, adding linker switch (''Project-&amp;gt;Build options...-&amp;gt;Linker settings (tab)'')&lt;br /&gt;
 -Wl,--allow-multiple-definition&lt;br /&gt;
will enable the code to link.&lt;br /&gt;
&lt;br /&gt;
See also: [http://sourceware.org/bugzilla/show_bug.cgi?id=12762 Bug 12762]&lt;br /&gt;
&lt;br /&gt;
==== Q: How can I change the language of the compiler (gcc) output to english? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Codeblocks 12.11 or higher: Settings-&amp;gt;Environment-&amp;gt;Environment Variables. Add &amp;quot;LC_ALL&amp;quot; with value &amp;quot;C&amp;quot;. -&amp;gt;Set Now -&amp;gt; Ok&lt;br /&gt;
&lt;br /&gt;
Since a few releases gcc is localized. This can make difficult to find (google ;) ) solutions for specific problems. With this setting the output is again in english.&lt;br /&gt;
&lt;br /&gt;
!! this can break displaying of non-aschii characters so you can also use LC_ALL = en_US.utf8 (/index.php/topic,17579.msg120613.html#msg120613)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Return to '''[[FAQ]]'''.&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=FAQ-Compiling_(errors)&amp;diff=7545</id>
		<title>FAQ-Compiling (errors)</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=FAQ-Compiling_(errors)&amp;diff=7545"/>
		<updated>2013-03-04T21:30:44Z</updated>

		<summary type="html">&lt;p&gt;BlueHazzard: Add a solution to change the language from gcc back to english&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Documentation]]&lt;br /&gt;
__TOC__&lt;br /&gt;
Return to '''[[FAQ]]'''.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==== Q: How do I troubleshoot a compiler problem? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' I would start by turning on full Compiler logging.&lt;br /&gt;
&lt;br /&gt;
This is done by selecting the &amp;quot;Full command line&amp;quot; option Under menu &amp;quot;Settings&amp;quot; -&amp;gt; &amp;quot;Compiler&amp;quot; -&amp;gt; Global compiler settings -&amp;gt; [the compiler you use] -&amp;gt; &amp;quot;Other Setting&amp;quot; tab, &amp;quot;Compiler logging&amp;quot;. In 12.11 and newer this is enabled by default.&lt;br /&gt;
&lt;br /&gt;
This option will make Code::Blocks output the exact commands it uses to compile your code.&lt;br /&gt;
&lt;br /&gt;
Things to remember:&lt;br /&gt;
&lt;br /&gt;
* You should review all the commands and their options;&lt;br /&gt;
* If you have compiled your app before, do a ''re-''build (or ''clean'' before build) to see all compiling / linking steps;&lt;br /&gt;
* If you don't know what an option or a command does please read the documentation for the compiler/linker you're using;&lt;br /&gt;
* Look for missing commands;&lt;br /&gt;
* For every source file (&amp;lt;tt&amp;gt;.cpp&amp;lt;/tt&amp;gt;; &amp;lt;tt&amp;gt;.c&amp;lt;/tt&amp;gt;; &amp;lt;tt&amp;gt;.d&amp;lt;/tt&amp;gt;; etc) in your project, you must have at least one command in the log. This command must produce an object file (file extension &amp;lt;tt&amp;gt;.o&amp;lt;/tt&amp;gt; if using gcc/g++ and &amp;lt;tt&amp;gt;.obj&amp;lt;/tt&amp;gt; if using Visual Studio);&lt;br /&gt;
* Every object file should be linked in the final executable, if not there are undefined symbols errors;&lt;br /&gt;
* Remember the file extension matters: &amp;lt;tt&amp;gt;*.c&amp;lt;/tt&amp;gt; is compiled as C file, &amp;lt;tt&amp;gt;*.cpp&amp;lt;/tt&amp;gt; is compiled as C++ file. [http://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html Read more]&lt;br /&gt;
&lt;br /&gt;
==== Q: What do I need to know when using 3rd party libs? ====&lt;br /&gt;
Here are some basics about typical mistakes done when working with third party libs, including wxWidgets. The following is valid for ''every'' third party SDK / toolbox / component you want to use and describes what steps your have to do:&lt;br /&gt;
&lt;br /&gt;
* Download the sources of the component OR a ready-to-use development version. The difference: While the first requires you to compile the component yourself is will definitely work with your compiler. The latter must be compiled in a compatible way: So a compatible compiler, compatible OS, compatible settings. Inspect the components docs about how to get what you want.&lt;br /&gt;
* Place the component sources and compiled parts anywhere you want It is not required to copy such parts to any other folder you might think - in fact, this may even be dangerous in case you overwrite existing files.&lt;br /&gt;
* Create a project where you want to use your component.&lt;br /&gt;
* In the ''compiler'' settings, point to the folder, where the include files of your component are. For WX this is special, as usually you include like #include &amp;lt;wx/foo.h&amp;gt;. So do ''not'' point to [Component_Folder]\include\wx, but to [Component_Folder]\include instead.&lt;br /&gt;
* Note that the compiler only needs to know the interfaces / classes / structures / methods, it will not throw an error about undefined references or alike. The compiler will only complain in case it cannot find references in terms of include files. If thats the case, adjust your project's compiler settings. Keep in mind that you do need to fulfil the requirements of your component itself, too. Thus, wxChart for example will need for wxWidgets, too. So - you may need to do the same process for wxWidgets, too before you can use wxChart - unless you have done that already.&lt;br /&gt;
* In the ''linker'' settings, point to the folder where you have your compiled library. A library usually ends with *.a or *.lib. Note that there are generally two types of libs: Static libs (after linking you are done) and Dynamic libs (where you link against an import lib but require another dynamic lib at runtime).&lt;br /&gt;
* In the linker settings add the library/libraries you need to link against in the ''right order'' to the list of libs to link against. ''Order matters'' - again, dependencies must be taken into account. Inspect the developers guide of the component to know the dependencies. On Windows, this may include the MSDN, too which tells you what libraries you need to link against for certain symbols you or the library may make use of.&lt;br /&gt;
* The linker will never complain about includes it cannot find. Because the linker just links object files or library files together. But the linker may complain about unresolved symbols which you need to provide. So if that happens, either your setup is missing a lib, or the order is wrong.&lt;br /&gt;
&lt;br /&gt;
Again, this is valid for all third party stuff you want to use. Its heavily ''platform'' and ''compiler'' dependent. The IDE should be less of concern for you. Every IDE can be setup in a way it will compile and link your stuff unless you provide everything needed as explained above.&lt;br /&gt;
&lt;br /&gt;
If you don't understand parts written here it is ''strongly'' recommended you start with a book about general programming in C/C++ that covers library handling in more detail.&lt;br /&gt;
&lt;br /&gt;
For the example wxChart in the end is not easy for starters. Usually you need to compile wxWidgets before, then wxChart and usually not all dependencies are explained in the docs and it behaves differently on different OS'es / compilers. Also, wcChart can be compiled in many flavours - so you need to make sure the flavour matches a) your needs and b) the way you compiled wxWidgets.&lt;br /&gt;
&lt;br /&gt;
==== Q: My simple C++ program throws up lots of errors - what is going on? ====&lt;br /&gt;
&lt;br /&gt;
If you have a C++ program like this:&lt;br /&gt;
&lt;br /&gt;
  #include &amp;lt;iostream&amp;gt;&lt;br /&gt;
  int main() {&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;hello world\n&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
and when you compile it you get errors like this:&lt;br /&gt;
&lt;br /&gt;
  fatal error: iostream: No such file or directory&lt;br /&gt;
&lt;br /&gt;
then you have probably given your source file a .c extension. If you do that, the GCC compiler (and others) will probably attempt to compile the file as a C program, not as C++. You should always give your C++ source files the extension .cpp to make sure the compiler handles them correctly.&lt;br /&gt;
&lt;br /&gt;
==== Q: I imported a MSVCToolkit project/workspace, but Code::Blocks insists on trying to use GCC. What's wrong? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' A little documentation problem ^^;. The &amp;quot;default compiler&amp;quot; is usually GCC, so when you imported it with &amp;quot;the default compiler&amp;quot;, you told it to use GCC. To fix this situation, go to &amp;quot;Project&amp;quot;, &amp;quot;Build Options&amp;quot; and select VC++ Toolkit as your compiler.&lt;br /&gt;
&lt;br /&gt;
Another possibility is to put the Microsoft compiler as the default one.  To do this, choose '''''Settings - Compiler''''', choose the Microsoft compiler in the '''''Selected Compiler''''' section (top of dialog box) and press the '''''Set as default''''' button.&lt;br /&gt;
&lt;br /&gt;
From now onwards, for all new projects the Microsoft compiler will be taken by default.&lt;br /&gt;
&lt;br /&gt;
==== Q: When compiling a wxWidgets project, I get several &amp;quot;variable 'vtable for xxxx' can't be auto-imported&amp;quot;. What's wrong? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' You need to add WXUSINGDLL in &amp;quot;Project-&amp;gt;Build options-&amp;gt;Compiler #defines&amp;quot; and rebuild your project (or create a new project and use the &amp;quot;Using wxWidgets DLL&amp;quot; project option which adds &amp;quot;-DWXUSINGDLL&amp;quot; to Project-&amp;gt;Build options-&amp;gt;Other options).&lt;br /&gt;
Other errors with the same resolution are:&lt;br /&gt;
'unresolved external symbol &amp;quot;char const * const wxEmptyString&amp;quot; (?wxEmptyString@@3PBDB)' or similar.&lt;br /&gt;
If you were using 1.0-finalbeta and were trying to build a statically linked wxWidgets project, the cause of the problem was some faulty templates. But that's fixed now.&lt;br /&gt;
&lt;br /&gt;
==== Q: I can't compile a multithreaded app with VC Toolkit! Where are the libraries? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Sorry, no fix for your problem...&lt;br /&gt;
&lt;br /&gt;
Your problem doesn't come from CodeBlocks. It exists, because the free VC toolkit (VCTK) doesn't provide all the libraries and tools which come with Visual C++ (VC) which isn't free, unfortunately.&lt;br /&gt;
&lt;br /&gt;
Try buying a full-fledged VC++, or even better, download [http://www.mingw.org/ MinGW]&lt;br /&gt;
&lt;br /&gt;
The libraries that can be obtained free of charge are:&lt;br /&gt;
&lt;br /&gt;
Paths:&lt;br /&gt;
 (VCT3) Visual C++ Toolkit 2003 - C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib&lt;br /&gt;
 (PSDK) Platform SDK - C:\Program Files\Microsoft Platform SDK\Lib&lt;br /&gt;
 (NSDK) .NET 1.1 SDK - C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib&lt;br /&gt;
&lt;br /&gt;
C runtime libs:&lt;br /&gt;
 LIBC.LIB 	Single-threaded, static link                                          (VCT3, NSDK)&lt;br /&gt;
 LIBCMT.LIB 	Multithreaded, static link                                            (VCT3, NSDK)&lt;br /&gt;
 MSVCRT.LIB 	Multithreaded, dynamic link (import library for MSVCR71.DLL)          (NSDK)&lt;br /&gt;
 LIBCD.LIB 	Single-threaded, static link (debug)                                  (VCT3, NSDK)&lt;br /&gt;
 LIBCMTD.LIB 	Multithreaded, static link (debug)                                    (NSDK)&lt;br /&gt;
 MSVCRTD.LIB 	Multithreaded, dynamic link (import library for MSVCR71D.DLL) (debug) (NSDK)&lt;br /&gt;
&lt;br /&gt;
C++ libs:&lt;br /&gt;
 LIBCP.LIB 	Single-threaded, static link                                          (VCT3, PSDK)&lt;br /&gt;
 LIBCPMT.LIB 	Multithreaded, static link                                            (VCT3)&lt;br /&gt;
 MSVCPRT.LIB 	Multithreaded, dynamic link (import library for MSVCP71.dll)          (none)&lt;br /&gt;
 LIBCPD.LIB 	Single-threaded, static link (debug)                                  (VCT3)&lt;br /&gt;
 LIBCPMTD.LIB 	Multithreaded, static link (debug)                                    (none)&lt;br /&gt;
 MSVCPRTD.LIB 	Multithreaded, dynamic link (import library for MSVCP71D.DLL) (debug) (none)&lt;br /&gt;
&lt;br /&gt;
Try setting the library linker directories to:&lt;br /&gt;
 C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib&lt;br /&gt;
 C:\Program Files\Microsoft Platform SDK\Lib&lt;br /&gt;
 C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib&lt;br /&gt;
in that order.&lt;br /&gt;
&lt;br /&gt;
The ones listed as (none) above are actually present in the IA64 and AMD64 subdirectories of the PSDK lib directory.  Not sure if these would work on 32-bit windows, however, they may if they are&lt;br /&gt;
meant to work in 32-bit compatibility mode on the 64-bit processors.  Worth a try.  Otherwise, you&lt;br /&gt;
can link statically to the C++ library instead of using MSVCP71.dll.  If you really want to link against MSVCP71.dll you can try to create MSVCP71.LIB from the dll using lib.exe and sed.  Search google for &amp;quot;exports.sed&amp;quot; for detailed steps.&lt;br /&gt;
&lt;br /&gt;
See also: [http://wiki.tcl.tk/2435 tclsh script to extract import .lib from (any?) DLL (MinGW)]&lt;br /&gt;
&lt;br /&gt;
See also: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_c_run.2d.time_libraries.asp&lt;br /&gt;
&lt;br /&gt;
See also: http://sapdb.2scale.net/moin.cgi/MS_20C_2b_2b_20Toolkit&lt;br /&gt;
&lt;br /&gt;
==== Q: I get this error when compiling: Symbol &amp;quot;isascii&amp;quot; was not found in &amp;quot;codeblocks.dll&amp;quot; ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Make sure you didn't mix up the MSVC headers or libs with the MinGW ones.&lt;br /&gt;
&lt;br /&gt;
==== Q: My build fails with multiple ''undefined reference'' errors? ====&lt;br /&gt;
&lt;br /&gt;
''Example:''&lt;br /&gt;
 undefined reference to `WSACleanup@8&lt;br /&gt;
 undefined reference to `WSACleanup@0&lt;br /&gt;
&lt;br /&gt;
'''A:''' Most of the time it is because the required library is not linked with your project. Go to ''Project-&amp;gt;Build options...-&amp;gt;Linker settings (tab)'' and add the required library or libraries.&lt;br /&gt;
&lt;br /&gt;
If the error includes a line number, it is likely that this is a problem with your code. Track down down your function declarations and implementations. Ensure they all match up, are spelled correctly, and have the correct scope resolution.&lt;br /&gt;
&lt;br /&gt;
''VERY'' often you can get help by just googling for the name of the undefined reference, for this example its &amp;quot;WSACleanup&amp;quot;. Usually one of the first links is the SDK documentation, like [http://msdn.microsoft.com/en-us/library/windows/desktop/ms741549%28v=vs.85%29.aspx this from MSDN for WSACleanup]. You'll find there a lot useful information, including what libraries you need to link against, as for the exsample:&lt;br /&gt;
'''Requirements'''&lt;br /&gt;
* Minimum supported client: Windows 2000 Professional&lt;br /&gt;
* Minimum supported server: Windows 2000 Server&lt;br /&gt;
* Header: '''Winsock2.h'''&lt;br /&gt;
* Library: '''Ws2_32'''.lib&lt;br /&gt;
* DLL: '''Ws2_32.dll'''&lt;br /&gt;
The header file '''Winsock2.h''' you need to include in your sources. Most likely you have done that already because otherwise you would have gotten a compiler error unable to find the function declaration. The library you need to link against, you can remove any prefix like &amp;quot;lib&amp;quot; and the file extension like &amp;quot;.lib&amp;quot;, &amp;quot;.a&amp;quot; or &amp;quot;.so&amp;quot; - so just type &amp;quot;'''Ws2_32'''&amp;quot; in the linker options. Also make sure you have added the path to that library in the linker include path's options, otherwise the linker will complain that it cannot find that library you want to link against. You also know, that you should distribute '''Ws2_32.dll''' for the runtime version of you app, luckily this one usually ships with Windows anyways, so no need to do something here.&lt;br /&gt;
&lt;br /&gt;
==== Q: My build fails in the compile/link/run step with a ''Permission denied'' error? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' There are several possible causes for this:&lt;br /&gt;
&lt;br /&gt;
# The output directory does not have read/write access.&lt;br /&gt;
#* Either change control settings on the output directory, or move the project to different location.&lt;br /&gt;
# A previous instance of the executable failed to terminate properly.&lt;br /&gt;
#* Open your system's equivalent of Process/Task Manager, search the list for the name of the executable Code::Blocks is trying to output, and terminate it.&lt;br /&gt;
#* Logging off or rebooting will achieve the same effect.&lt;br /&gt;
# The executable is open.&lt;br /&gt;
#* If the executable is open in a hex-editor or actively being run, close it.&lt;br /&gt;
# Security software is interfering.&lt;br /&gt;
#* The target file is locked while an antivirus programming is scanning it; either wait a few seconds for the antivirus scan to finish, set an exception in the antivirus settings, or (temporarily) disable the antivirus program.&lt;br /&gt;
#* Firewalls with very strict settings sometimes block execution; try reducing the firewall's settings or adding an exception.&lt;br /&gt;
#* Switching security software may have left traces behind that are interfering; hunt down the remnants of the old antivirus/firewall software and remove them.&lt;br /&gt;
# The file/library cannot be found.&lt;br /&gt;
#* Double check all of the compiler and linker [[FAQ-Compiling (general)#Q: I would like to compile a project using some non-standard libraries. How can I indicate to CodeBlocks that these libraries and include files exist?|search directories]] (including any [[Global compiler variables|variables]] they may be using) are properly setup.&lt;br /&gt;
# Code::Blocks was improperly installed.&lt;br /&gt;
#* Mixing binaries from a stable release and a nightly build (or even two different nightly builds) is highly likely to cause a slew of problems; [[Installing Code::Blocks|reinstall Code::Blocks]] in an empty directory.&lt;br /&gt;
# Multiple installed compilers are interfering with each other.&lt;br /&gt;
#* If they are not required to keep, completely remove all but the most used compiler.&lt;br /&gt;
#* If several compilers are required, ensure that '''none''' of them are in the ''system'' path (this is so that Code::Blocks will be able to manage all paths).&lt;br /&gt;
#* Also, do not place any compilers in their default installation path (for example &amp;lt;tt&amp;gt;C:\MinGW&amp;lt;/tt&amp;gt;), as some compilers are hard-coded to look for headers in a default path ''before'' searching their own respective directories.&lt;br /&gt;
# On windows 7, the service &amp;quot;Application Experience&amp;quot; is not running [http://stackoverflow.com/questions/7655471/ld-exe-cannot-open-output-file-permission-denied#answer-7904469 as explained on stackoverflow].&lt;br /&gt;
See also: [/index.php/topic,15047.0.html Permission denied forums discussion]&lt;br /&gt;
&lt;br /&gt;
==== Q: My build fails to link due to ''multiple definition of xyz'' errors? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' GCC 4.6.1 mingw target (Windows) is known to occasionally (and erroneously) report this if link-time optimization (&amp;lt;tt&amp;gt;-flto&amp;lt;/tt&amp;gt;) is used.&lt;br /&gt;
&lt;br /&gt;
First, of course, check that no token has been defined multiple times. If the source code is clean, and yet the errors persist, adding linker switch (''Project-&amp;gt;Build options...-&amp;gt;Linker settings (tab)'')&lt;br /&gt;
 -Wl,--allow-multiple-definition&lt;br /&gt;
will enable the code to link.&lt;br /&gt;
&lt;br /&gt;
See also: [http://sourceware.org/bugzilla/show_bug.cgi?id=12762 Bug 12762]&lt;br /&gt;
&lt;br /&gt;
==== Q: How can I change the language of the compiler (gcc) output to english? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Codeblocks 12.11 or higher: Settings-&amp;gt;Environment-&amp;gt;Environment Variables. Add &amp;quot;LC_ALL&amp;quot; with value &amp;quot;C&amp;quot;. -&amp;gt;Set Now -&amp;gt; Ok&lt;br /&gt;
&lt;br /&gt;
Since a few releases gcc is localized. This can make difficult to find (google ;) ) solutions for specific problems. With this setting the output is again in english.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Return to '''[[FAQ]]'''.&lt;/div&gt;</summary>
		<author><name>BlueHazzard</name></author>
	</entry>
</feed>