<?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=Severach</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=Severach"/>
	<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php/Special:Contributions/Severach"/>
	<updated>2026-05-24T02:39:40Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.0</generator>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=FAQ&amp;diff=5464</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=FAQ&amp;diff=5464"/>
		<updated>2008-03-21T00:05:27Z</updated>

		<summary type="html">&lt;p&gt;Severach: /* Q: Microsoft calls MSVCRT.DLL a &amp;quot;Known DLL.&amp;quot; How do I know if I can/should use it ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Documentation]]&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
==== Q: Is it possible to integrate the win32-help as in dev-cpp, to get help on the items under the caret? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Integration of the Win32 API helpfile should be a no-brainer. Someone could just write a really simple plugin and, upon invocation (through a shortcut possibly), look at the word under the cursor and invoke windows help... If you think you 're up to the task, I can help you with all the info you need. If not, I could write it myself but no promises on a release date ;)&lt;br /&gt;
&lt;br /&gt;
==== Q: What licence is Code::Blocks released under? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' GNU General Public License 3 ([http://www.gnu.org/licenses/gpl-3.0.html GPL])&lt;br /&gt;
&lt;br /&gt;
== Compiling ==&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. The one provided with the default Code::Blocks installation, supports GNU GCC (MinGW/Cygwin), MS Visual C++ Free Toolkit 2003, Borland's C++ Compiler 5.5, DigitalMars Free Compiler., OpenWatcom and Small Device C Compiler (SDCC).&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: 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 two different settings:&lt;br /&gt;
&lt;br /&gt;
a) In &amp;quot;Compiler Settings&amp;quot;, under the tab &amp;quot;Other&amp;quot;, there's a setting called &amp;quot;Build Method&amp;quot;. Choose &amp;quot;Work with makefiles&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
b) In your project's Properties, you can choose to use a makefile. Check &amp;quot;This is a custom makefile&amp;quot; (WARNING! if you forget to check, the makefile will be OVERWRITTEN!)&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: 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 are coming 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: 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/mingwfaq.shtml#faq-msvcdll&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 get this error when compiling: Symbol &amp;quot;isascii&amp;quot; was not found in &amp;quot;codeblocks.dll&amp;quot; ====&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: 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;
'''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 troubleshoot an compiler problem? ====&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 and Debugger&amp;quot; -&amp;gt; &amp;quot;Other Setting&amp;quot; tab, &amp;quot;Compiler logging&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
&lt;br /&gt;
==== Q: How do I get Code Completion to work? ====&lt;br /&gt;
'''A:''' Did you check how code completion is configured ?&lt;br /&gt;
See &amp;quot;Settings/Editor&amp;quot;, click on &amp;quot;Code-completion and symbols browser&amp;quot; in the left column and check the Code completion and C/C++ parser tabs.&lt;br /&gt;
&lt;br /&gt;
From the 2006/11/30 nightly build, you can also add, in the project properties, directories to be searched when locating a file to parse  .Right click on the project, click on Properties and select the C/C++ parser options.&lt;br /&gt;
&lt;br /&gt;
They 're mostly useful when you don't add compiler search dirs in build options but use backticked expressions (e.g. `freetype-config --cflags`). In this case, the parser is not aware of where the source files are located. So, by manually adding the directory in the parser's search dirs you 're actually helping the parser find the files.&lt;br /&gt;
&lt;br /&gt;
Of course, backticked expressions are not the only reason these parser search dirs are useful. As another example, I have a set of projects in a workspace. To minimize maintenance overhead, I 'm using build scripts to configure these projects. Now, although build scripts are an awesome feature, the C/C++ parser faces the same problem: it doesn't know where to search for files. The parser search directories come to the rescue again.&lt;/div&gt;</summary>
		<author><name>Severach</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=FAQ&amp;diff=4331</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=FAQ&amp;diff=4331"/>
		<updated>2006-12-25T02:04:44Z</updated>

		<summary type="html">&lt;p&gt;Severach: /* Q: Microsoft calls MSVCRT.DLL a &amp;quot;Known DLL.&amp;quot; How do I know if I can/should use it ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Documentation]]&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
==== Q: Is it possible to integrate the win32-help as in dev-cpp, to get help on the items under the caret? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Integration of the Win32 API helpfile should be a no-brainer. Someone could just write a really simple plugin and, upon invocation (through a shortcut possibly), look at the word under the cursor and invoke windows help... If you think you 're up to the task, I can help you with all the info you need. If not, I could write it myself but no promises on a release date ;)&lt;br /&gt;
&lt;br /&gt;
==== Q: What licence is Code::Blocks released under? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' GNU General Public License 2 ([http://www.gnu.org/licenses/gpl.txt GPL])&lt;br /&gt;
&lt;br /&gt;
== Compiling ==&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. The one provided with the default Code::Blocks installation, supports GNU GCC (MinGW/Cygwin), MS Visual C++ Free Toolkit 2003, Borland's C++ Compiler 5.5, DigitalMars Free Compiler., OpenWatcom and Small Device C Compiler (SDCC).&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: 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 two different settings:&lt;br /&gt;
&lt;br /&gt;
a) In &amp;quot;Compiler Settings&amp;quot;, under the tab &amp;quot;Other&amp;quot;, there's a setting called &amp;quot;Build Method&amp;quot;. Choose &amp;quot;Work with makefiles&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
b) In your project's Properties, you can choose to use a makefile. Check &amp;quot;This is a custom makefile&amp;quot; (WARNING! if you forget to check, the makefile will be OVERWRITTEN!)&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: 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 are coming 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: 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 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. For projects that can safely use MSVCRT and where it is impractical to redistribute MSVCR, a 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 libs and 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 MSVCRxx.DLL and MSVCRT.DLL. It is essential that malloc, calloc, realloc, free, and related memory allocation functions all import from the same DLL. 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.&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/mingwfaq.shtml#faq-msvcdll&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 get this error when compiling: Symbol &amp;quot;isascii&amp;quot; was not found in &amp;quot;codeblocks.dll&amp;quot; ====&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: 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;
'''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;
== Settings ==&lt;br /&gt;
&lt;br /&gt;
==== Q: How do I get Code Completion to work? ====&lt;br /&gt;
'''A:''' Did you check how code completion is configured ?&lt;br /&gt;
See &amp;quot;Settings/Editor&amp;quot;, click on &amp;quot;Code-completion and symbols browser&amp;quot; in the left column and check the Code completion and C/C++ parser tabs.&lt;br /&gt;
&lt;br /&gt;
From the 2006/11/30 nightly build, you can also add, in the project properties, directories to be searched when locating a file to parse  .Right click on the project, click on Properties and select the C/C++ parser options.&lt;br /&gt;
&lt;br /&gt;
They 're mostly useful when you don't add compiler search dirs in build options but use backticked expressions (e.g. `freetype-config --cflags`). In this case, the parser is not aware of where the source files are located. So, by manually adding the directory in the parser's search dirs you 're actually helping the parser find the files.&lt;br /&gt;
&lt;br /&gt;
Of course, backticked expressions are not the only reason these parser search dirs are useful. As another example, I have a set of projects in a workspace. To minimize maintenance overhead, I 'm using build scripts to configure these projects. Now, although build scripts are an awesome feature, the C/C++ parser faces the same problem: it doesn't know where to search for files. The parser search directories come to the rescue again.&lt;/div&gt;</summary>
		<author><name>Severach</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=FAQ&amp;diff=3932</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=FAQ&amp;diff=3932"/>
		<updated>2006-10-23T23:36:31Z</updated>

		<summary type="html">&lt;p&gt;Severach: /* Q: Microsoft calls MSVCRT.DLL a &amp;quot;Known DLL.&amp;quot; How do I know if I can/should use it ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Documentation]]&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
==== Q: Is it possible to integrate the win32-help as in dev-cpp, to get help on the items under the caret? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Integration of the win32 API helpfile should be a no-brainer. Someone could just write a really simple plugin and, upon invocation (through a shortcut possibly), look at the word under the cursor and invoke windows help... If you think you 're up to the task, I can help you with all the info you need. If not, I could write it myself but no promises on a release date ;)&lt;br /&gt;
&lt;br /&gt;
==== Q: What licence is Code::Blocks released under? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' GNU General Public License 2 ([http://www.gnu.org/licenses/gpl.txt GPL])&lt;br /&gt;
&lt;br /&gt;
== Compiling ==&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. The one provided with the default Code::Blocks installation, supports GNU GCC (MinGW/Cygwin), MS Visual C++ Free Toolkit 2003, Borland's C++ Compiler 5.5, DigitalMars Free Compiler., OpenWatcom and Small Device C Compiler (SDCC).&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: 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 two different settings:&lt;br /&gt;
&lt;br /&gt;
a) In &amp;quot;Compiler Settings&amp;quot;, under the tab &amp;quot;Other&amp;quot;, there's a setting called &amp;quot;Build Method&amp;quot;. Choose &amp;quot;Work with makefiles&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
b) In your project's Properties, you can choose to use a makefile. Check &amp;quot;This is a custom makefile&amp;quot; (WARNING! if you forget to check, the makefile will be OVERWRITTEN!)&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: 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 are coming 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: 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 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. For projects that can safely use MSVCRT and where it is impractical to redistribute MSVCR, a MSVCRT.LIB that links to MSVCRT.DLL is available in any [http://www.microsoft.com/whdc/devtools/ddk/orderddkcd.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 libs and 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 MSVCRxx.DLL and MSVCRT.DLL. It is essential that malloc, calloc, realloc, free, and related memory allocation functions all import from the same DLL. 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.&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/mingwfaq.shtml#faq-msvcdll&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 got this error when compiling: Symbol &amp;quot;isascii&amp;quot; was not found in &amp;quot;codeblocks.dll&amp;quot; ====&lt;br /&gt;
'''A:''' Make sure you didn't mix up the MSVC headers or libs with the MinGW ones.&lt;/div&gt;</summary>
		<author><name>Severach</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=FAQ&amp;diff=3931</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=FAQ&amp;diff=3931"/>
		<updated>2006-10-23T23:25:57Z</updated>

		<summary type="html">&lt;p&gt;Severach: /* Q: Microsoft calls MSVCRT.DLL a &amp;quot;Known DLL.&amp;quot; How do I know if I can/should use it ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Documentation]]&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
==== Q: Is it possible to integrate the win32-help as in dev-cpp, to get help on the items under the caret? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Integration of the win32 API helpfile should be a no-brainer. Someone could just write a really simple plugin and, upon invocation (through a shortcut possibly), look at the word under the cursor and invoke windows help... If you think you 're up to the task, I can help you with all the info you need. If not, I could write it myself but no promises on a release date ;)&lt;br /&gt;
&lt;br /&gt;
==== Q: What licence is Code::Blocks released under? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' GNU General Public License 2 ([http://www.gnu.org/licenses/gpl.txt GPL])&lt;br /&gt;
&lt;br /&gt;
== Compiling ==&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. The one provided with the default Code::Blocks installation, supports GNU GCC (MinGW/Cygwin), MS Visual C++ Free Toolkit 2003, Borland's C++ Compiler 5.5, DigitalMars Free Compiler., OpenWatcom and Small Device C Compiler (SDCC).&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: 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 two different settings:&lt;br /&gt;
&lt;br /&gt;
a) In &amp;quot;Compiler Settings&amp;quot;, under the tab &amp;quot;Other&amp;quot;, there's a setting called &amp;quot;Build Method&amp;quot;. Choose &amp;quot;Work with makefiles&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
b) In your project's Properties, you can choose to use a makefile. Check &amp;quot;This is a custom makefile&amp;quot; (WARNING! if you forget to check, the makefile will be OVERWRITTEN!)&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: 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 are coming 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: 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 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. For projects that can safely use MSVCRT and where it is impractical to redistribute MSVCR, a MSVCRT.LIB that links to MSVCRT.DLL is available in any [http://www.microsoft.com/whdc/devtools/ddk/orderddkcd.mspx Device Driver Kit] version Windows XP or lower. Using a Windows 2003 or higher may cause a link time error '''error LNK2001: unresolved external symbol ___security_cookie'''. 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 libs and 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 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/mingwfaq.shtml#faq-msvcdll&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 got this error when compiling: Symbol &amp;quot;isascii&amp;quot; was not found in &amp;quot;codeblocks.dll&amp;quot; ====&lt;br /&gt;
'''A:''' Make sure you didn't mix up the MSVC headers or libs with the MinGW ones.&lt;/div&gt;</summary>
		<author><name>Severach</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=FAQ&amp;diff=3930</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=FAQ&amp;diff=3930"/>
		<updated>2006-10-23T23:21:26Z</updated>

		<summary type="html">&lt;p&gt;Severach: /* Q: Microsoft calls MSVCRT.DLL a &amp;quot;Known DLL.&amp;quot; How do I know if I can/should use it ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Documentation]]&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
==== Q: Is it possible to integrate the win32-help as in dev-cpp, to get help on the items under the caret? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Integration of the win32 API helpfile should be a no-brainer. Someone could just write a really simple plugin and, upon invocation (through a shortcut possibly), look at the word under the cursor and invoke windows help... If you think you 're up to the task, I can help you with all the info you need. If not, I could write it myself but no promises on a release date ;)&lt;br /&gt;
&lt;br /&gt;
==== Q: What licence is Code::Blocks released under? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' GNU General Public License 2 ([http://www.gnu.org/licenses/gpl.txt GPL])&lt;br /&gt;
&lt;br /&gt;
== Compiling ==&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. The one provided with the default Code::Blocks installation, supports GNU GCC (MinGW/Cygwin), MS Visual C++ Free Toolkit 2003, Borland's C++ Compiler 5.5, DigitalMars Free Compiler., OpenWatcom and Small Device C Compiler (SDCC).&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: 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 two different settings:&lt;br /&gt;
&lt;br /&gt;
a) In &amp;quot;Compiler Settings&amp;quot;, under the tab &amp;quot;Other&amp;quot;, there's a setting called &amp;quot;Build Method&amp;quot;. Choose &amp;quot;Work with makefiles&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
b) In your project's Properties, you can choose to use a makefile. Check &amp;quot;This is a custom makefile&amp;quot; (WARNING! if you forget to check, the makefile will be OVERWRITTEN!)&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: 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 are coming 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: 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 system component which should not be updated by any end user product installers and 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 system 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 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. For projects that can safely use MSVCRT and where it is impractical to redistribute MSVCR, a MSVCRT.LIB that links to MSVCRT.DLL is available in any [http://www.microsoft.com/whdc/devtools/ddk/orderddkcd.mspx Device Driver Kit] version Windows XP or lower. Using a Windows 2003 or higher may cause a link time error '''error LNK2001: unresolved external symbol ___security_cookie'''. 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 libs and 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 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/mingwfaq.shtml#faq-msvcdll&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 got this error when compiling: Symbol &amp;quot;isascii&amp;quot; was not found in &amp;quot;codeblocks.dll&amp;quot; ====&lt;br /&gt;
'''A:''' Make sure you didn't mix up the MSVC headers or libs with the MinGW ones.&lt;/div&gt;</summary>
		<author><name>Severach</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=FAQ&amp;diff=3911</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=FAQ&amp;diff=3911"/>
		<updated>2006-10-16T03:47:50Z</updated>

		<summary type="html">&lt;p&gt;Severach: /* Q: Microsoft calls MSVCRT.DLL a &amp;quot;Known DLL.&amp;quot; How do I know if I can/should use it ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Documentation]]&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
==== Q: Is it possible to integrate the win32-help as in dev-cpp, to get help on the items under the caret? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Integration of the win32 API helpfile should be a no-brainer. Someone could just write a really simple plugin and, upon invocation (through a shortcut possibly), look at the word under the cursor and invoke windows help... If you think you 're up to the task, I can help you with all the info you need. If not, I could write it myself but no promises on a release date ;)&lt;br /&gt;
&lt;br /&gt;
==== Q: What licence is Code::Blocks released under? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' GNU General Public License 2 ([http://www.gnu.org/licenses/gpl.txt GPL])&lt;br /&gt;
&lt;br /&gt;
== Compiling ==&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. The one provided with the default Code::Blocks installation, supports GNU GCC (MinGW/Cygwin), MS Visual C++ Free Toolkit 2003, Borland's C++ Compiler 5.5, DigitalMars Free Compiler., OpenWatcom and Small Device C Compiler (SDCC).&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: 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 two different settings:&lt;br /&gt;
&lt;br /&gt;
a) In &amp;quot;Compiler Settings&amp;quot;, under the tab &amp;quot;Other&amp;quot;, there's a setting called &amp;quot;Build Method&amp;quot;. Choose &amp;quot;Work with makefiles&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
b) In your project's Properties, you can choose to use a makefile. Check &amp;quot;This is a custom makefile&amp;quot; (WARNING! if you forget to check, the makefile will be OVERWRITTEN!)&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: 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 are coming 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: 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 system component which should not be updated by any end user product installers and 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 system 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 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 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. For projects that can safely use MSVCRT and where it is impractical to redistribute MSVCR, a MSVCRT.LIB that links to MSVCRT.DLL is available in any [http://www.microsoft.com/whdc/devtools/ddk/orderddkcd.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. To use a custom MSVCRT.LIB it is not necessary to use Microsoft Link /NODEFAULTLIB switch. You only need to list the custom MSVCRT.LIB in the LIB list and it will take precedence over any LIB listed after it and the default libs.&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/mingwfaq.shtml#faq-msvcdll&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 got this error when compiling: Symbol &amp;quot;isascii&amp;quot; was not found in &amp;quot;codeblocks.dll&amp;quot; ====&lt;br /&gt;
'''A:''' Make sure you didn't mix up the MSVC headers or libs with the MinGW ones.&lt;/div&gt;</summary>
		<author><name>Severach</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=FAQ&amp;diff=3910</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=FAQ&amp;diff=3910"/>
		<updated>2006-10-16T03:43:35Z</updated>

		<summary type="html">&lt;p&gt;Severach: /* Q: Microsoft calls MSVCRT.DLL a &amp;quot;Known DLL.&amp;quot; How do I know if I can/should use it ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Documentation]]&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
==== Q: Is it possible to integrate the win32-help as in dev-cpp, to get help on the items under the caret? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Integration of the win32 API helpfile should be a no-brainer. Someone could just write a really simple plugin and, upon invocation (through a shortcut possibly), look at the word under the cursor and invoke windows help... If you think you 're up to the task, I can help you with all the info you need. If not, I could write it myself but no promises on a release date ;)&lt;br /&gt;
&lt;br /&gt;
==== Q: What licence is Code::Blocks released under? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' GNU General Public License 2 ([http://www.gnu.org/licenses/gpl.txt GPL])&lt;br /&gt;
&lt;br /&gt;
== Compiling ==&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. The one provided with the default Code::Blocks installation, supports GNU GCC (MinGW/Cygwin), MS Visual C++ Free Toolkit 2003, Borland's C++ Compiler 5.5, DigitalMars Free Compiler., OpenWatcom and Small Device C Compiler (SDCC).&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: 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 two different settings:&lt;br /&gt;
&lt;br /&gt;
a) In &amp;quot;Compiler Settings&amp;quot;, under the tab &amp;quot;Other&amp;quot;, there's a setting called &amp;quot;Build Method&amp;quot;. Choose &amp;quot;Work with makefiles&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
b) In your project's Properties, you can choose to use a makefile. Check &amp;quot;This is a custom makefile&amp;quot; (WARNING! if you forget to check, the makefile will be OVERWRITTEN!)&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: 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 are coming 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: 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 system component which should not be updated by any end user product installers and 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 system 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 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 Adobe Acrobat Reader is installed. This means that programs that depend on MSVCR must redistribute it or risk not working on a large percentage of systems for reasons not obvious to either the affected end users or the program supplier. For projects that can safely use MSVCRT and where it is impractical to redistribute MSVCR, a MSVCRT.LIB that links to MSVCRT.DLL is available in any [http://www.microsoft.com/whdc/devtools/ddk/orderddkcd.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. To use a custom MSVCRT.LIB it is not necessary to use Microsoft Link /NODEFAULTLIB switch. You only need to list the custom MSVCRT.LIB in the LIB list and it will take precedence over any LIB listed after it and the default libs.&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/mingwfaq.shtml#faq-msvcdll&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 got this error when compiling: Symbol &amp;quot;isascii&amp;quot; was not found in &amp;quot;codeblocks.dll&amp;quot; ====&lt;br /&gt;
'''A:''' Make sure you didn't mix up the MSVC headers or libs with the MinGW ones.&lt;/div&gt;</summary>
		<author><name>Severach</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=FAQ&amp;diff=3909</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=FAQ&amp;diff=3909"/>
		<updated>2006-10-16T02:40:06Z</updated>

		<summary type="html">&lt;p&gt;Severach: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Documentation]]&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
==== Q: Is it possible to integrate the win32-help as in dev-cpp, to get help on the items under the caret? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Integration of the win32 API helpfile should be a no-brainer. Someone could just write a really simple plugin and, upon invocation (through a shortcut possibly), look at the word under the cursor and invoke windows help... If you think you 're up to the task, I can help you with all the info you need. If not, I could write it myself but no promises on a release date ;)&lt;br /&gt;
&lt;br /&gt;
==== Q: What licence is Code::Blocks released under? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' GNU General Public License 2 ([http://www.gnu.org/licenses/gpl.txt GPL])&lt;br /&gt;
&lt;br /&gt;
== Compiling ==&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. The one provided with the default Code::Blocks installation, supports GNU GCC (MinGW/Cygwin), MS Visual C++ Free Toolkit 2003, Borland's C++ Compiler 5.5, DigitalMars Free Compiler., OpenWatcom and Small Device C Compiler (SDCC).&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: 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 two different settings:&lt;br /&gt;
&lt;br /&gt;
a) In &amp;quot;Compiler Settings&amp;quot;, under the tab &amp;quot;Other&amp;quot;, there's a setting called &amp;quot;Build Method&amp;quot;. Choose &amp;quot;Work with makefiles&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
b) In your project's Properties, you can choose to use a makefile. Check &amp;quot;This is a custom makefile&amp;quot; (WARNING! if you forget to check, the makefile will be OVERWRITTEN!)&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: 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 are coming 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: 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 system component which should not be updated by any end user product installers and 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 system 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.DLL that ships with 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 Adobe Acrobat Reader is installed. This means that programs that depend on MSVCR must redistribute it or risk not working on a large percentage of systems for reasons not obvious to either the affected end users or the program supplier. For projects that can safely use MSVCRT and where it is impractical to redistribute MSVCR, a MSVCRT.LIB that links to MSVCRT.DLL is available in any [http://www.microsoft.com/whdc/devtools/ddk/orderddkcd.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. To use a custom MSVCRT.LIB it is not necessary to use Microsoft Link /NODEFAULTLIB switch. You only need to list the custom MSVCRT.LIB in the LIB list and it will take precedence over any LIB listed after it and the default libs.&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/mingwfaq.shtml#faq-msvcdll&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 got this error when compiling: Symbol &amp;quot;isascii&amp;quot; was not found in &amp;quot;codeblocks.dll&amp;quot; ====&lt;br /&gt;
'''A:''' Make sure you didn't mix up the MSVC headers or libs with the MinGW ones.&lt;/div&gt;</summary>
		<author><name>Severach</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=FAQ&amp;diff=3904</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=FAQ&amp;diff=3904"/>
		<updated>2006-10-08T17:31:51Z</updated>

		<summary type="html">&lt;p&gt;Severach: /* Q: I can't compile a multithreaded app with VC Toolkit! Where are the libraries? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Code::Blocks Documentation]]&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
==== Q: Is it possible to integrate the win32-help as in dev-cpp, to get help on the items under the caret? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' Integration of the win32 API helpfile should be a no-brainer. Someone could just write a really simple plugin and, upon invocation (through a shortcut possibly), look at the word under the cursor and invoke windows help... If you think you 're up to the task, I can help you with all the info you need. If not, I could write it myself but no promises on a release date ;)&lt;br /&gt;
&lt;br /&gt;
==== Q: What licence is Code::Blocks released under? ====&lt;br /&gt;
&lt;br /&gt;
'''A:''' GNU General Public License 2 ([http://www.gnu.org/licenses/gpl.txt GPL])&lt;br /&gt;
&lt;br /&gt;
== Compiling ==&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. The one provided with the default Code::Blocks installation, supports GNU GCC (MinGW/Cygwin), MS Visual C++ Free Toolkit 2003, Borland's C++ Compiler 5.5, DigitalMars Free Compiler., OpenWatcom and Small Device C Compiler (SDCC).&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: 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 two different settings:&lt;br /&gt;
&lt;br /&gt;
a) In &amp;quot;Compiler Settings&amp;quot;, under the tab &amp;quot;Other&amp;quot;, there's a setting called &amp;quot;Build Method&amp;quot;. Choose &amp;quot;Work with makefiles&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
b) In your project's Properties, you can choose to use a makefile. Check &amp;quot;This is a custom makefile&amp;quot; (WARNING! if you forget to check, the makefile will be OVERWRITTEN!)&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: 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 are coming 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;
Most MSVCRT.LIB libraries are dependant on MSVCR71.DLL which is not available on all systems which may require you to redistribute it. This dependancy can be eliminated ([http://wiki.tcl.tk/11431 TCL Wiki]) by using MSVCRT.LIB out of any [http://www.microsoft.com/whdc/devtools/ddk/orderddkcd.mspx Device Driver Kit].&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: 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/mingwfaq.shtml#faq-msvcdll&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 got this error when compiling: Symbol &amp;quot;isascii&amp;quot; was not found in &amp;quot;codeblocks.dll&amp;quot; ====&lt;br /&gt;
'''A:''' Make sure you didn't mix up the MSVC headers or libs with the MinGW ones.&lt;/div&gt;</summary>
		<author><name>Severach</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Installing_a_supported_compiler&amp;diff=259</id>
		<title>Installing a supported compiler</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Installing_a_supported_compiler&amp;diff=259"/>
		<updated>2005-10-27T01:21:42Z</updated>

		<summary type="html">&lt;p&gt;Severach: /* Downloading the Digital Mars Free Compiler */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Currently supported compilers, at the time of this writing are:&lt;br /&gt;
* [http://gcc.gnu.org/ GNU GCC] (Linux)&lt;br /&gt;
* [http://www.mingw.org MinGW GCC] (Win32)&lt;br /&gt;
* [http://msdn.microsoft.com/visualc/vctoolkit2003 Microsoft's Visual C++ Free Toolkit 2003] (Win32)&lt;br /&gt;
* [http://www.borland.com/products/downloads/download_cbuilder.html# Borland's C++ Compiler 5.5] (Win32)&lt;br /&gt;
* [http://www.digitalmars.com/ DigitalMars] (Win32)&lt;br /&gt;
* [http://store.scitechsoft.com/product_info.php?products_id=37/ OpenWatcom] (Win32)&lt;br /&gt;
* [http://sdcc.sourceforge.net/ Small Device C Compiler (SDCC)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When you launch Code::Blocks for the first time, it will scan the system for any supported compilers (it takes virtually no time). After this scan completes, Code::Blocks will have been configured for the found compiler(s). Code::Blocks will also be configured even for compilers that were not found (default installation settings will be used for each of those compilers).&lt;br /&gt;
&lt;br /&gt;
For more info on how to download and install each of the above compilers, please read on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Downloading the GNU GCC compiler &amp;amp; GDB debugger ===&lt;br /&gt;
&lt;br /&gt;
If you are working under linux:&lt;br /&gt;
Under Linux you'll, most probably, already have everything that is needed in order to compile. All major Linux distributions (RedHat, Debian, SuSE, Mandrake, Gentoo, ArchLinux, etc) come with GCC &amp;amp; GDB preinstalled. To make sure you have have gcc installed, go to your terminal and type 'gcc -v'. In case you have GCC installed, you will get GCC's compile options and version number.&lt;br /&gt;
&lt;br /&gt;
If you are working under Windows:&lt;br /&gt;
Go to MinGW's [http://www.mingw.org/download.shtml downloads] page and download the file named &amp;lt;code&amp;gt;MinGW-x.y.z.exe&amp;lt;/code&amp;gt;, where x, y and z are version numbers. At the time of this writing, this file is &amp;lt;code&amp;gt;MinGW-3.1.0-1.exe&amp;lt;/code&amp;gt;. If you consider yourself lucky, you might also try &amp;lt;code&amp;gt;MinGW-3.2.0-rc-3.exe&amp;lt;/code&amp;gt;. It's not a stable release yet, but it works and lacks some bugs the older version has.&lt;br /&gt;
These setup files contain everything needed to compile and debug windows programs.&lt;br /&gt;
&lt;br /&gt;
=== Downloading the Microsoft Visual C++ Free Toolkit 2003 ===&lt;br /&gt;
&lt;br /&gt;
Go to this [http://msdn.microsoft.com/visualc/vctoolkit2003 MSDN site] and click on the link labeled &amp;quot;Download the Visual C++ Toolkit 2003&amp;quot;. This will download the setup file.&lt;br /&gt;
&lt;br /&gt;
NOTE: ''This download is &amp;lt;u&amp;gt;not sufficient&amp;lt;/u&amp;gt; for building windows programs. You will also have to download and install the [http://www.microsoft.com/msdownload/platformsdk/instmsi.htm Microsoft Platform SDK]''...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Downloading the Borland C++ Compiler 5.5 ===&lt;br /&gt;
&lt;br /&gt;
NOTE: ''At some point, you will be asked to register with Borland and fill out a survey. Registration is free.''&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.borland.com/products/downloads/download_cbuilder.html# Borland's downloads] and click on the link labeled &amp;quot;Compiler&amp;quot;. After you accept the license agreement, you will be provided with download links to the setup file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Downloading the Digital Mars Free Compiler ===&lt;br /&gt;
&lt;br /&gt;
NOTE: ''Code::Blocks support for DigitalMars was added in 1.0-beta6.''&lt;br /&gt;
&lt;br /&gt;
Go to [http://www.digitalmars.com/download/dmcpp.html DigitalMars]. Accept the license agreement and you 'll be redirected to a page containing download links. Download the compiler (current version is 8.45). You might also want to download the resource compiler (in basic utilities), as well as the STLport.&lt;br /&gt;
&lt;br /&gt;
=== Configuring CodeBlocks to use the Intel C++ Compiler ===&lt;br /&gt;
&lt;br /&gt;
After various user requests, we decided to post here the info to support the Intel Compiler on CodeBlocks. This should be easy, since the Intel Compiler can emulate te MSVC++ compiler.&lt;br /&gt;
&lt;br /&gt;
* change MS Toolkit linker from cl.exe to icl.exe&lt;br /&gt;
* add (instalation path to the Intel C++)\Ia32\Bin to the &amp;quot;Programs -&amp;gt; Extra paths&amp;quot;&lt;br /&gt;
* add &amp;quot;-D_USE_INTEL_COMPILER&amp;quot; to &amp;quot;Compiler options&amp;quot;&lt;br /&gt;
* add (instalation path to the Intel C++)\Ia32\Include and \lib to the &amp;quot;Global compiler options -&amp;gt; Directories&amp;quot;&lt;br /&gt;
* add some options like &amp;quot;/QaxK&amp;quot; to the &amp;quot;Compiler options&amp;quot; (icl -help)&lt;br /&gt;
voila.&lt;br /&gt;
&lt;br /&gt;
=== Compiler-neutral setup steps ===&lt;br /&gt;
&lt;br /&gt;
Now that you have downloaded the setup file of the compiler of your choice, launch its installation by double-clicking on the setup file. The actual installation process is really simple. Just press &amp;quot;Next&amp;quot; all the way and you 're done.&lt;br /&gt;
&lt;br /&gt;
If you installed the compiler on its default installation directory, there is nothing more to configure. Launch Code::Blocks and you 're all set :)&lt;br /&gt;
&lt;br /&gt;
If that is not the case, launch Code::Blocks. If it is the first time you launch it, the compiler auto-detection will be launched.&lt;br /&gt;
If your compiler was not auto-detected, go to &amp;quot;Settings/Configure plugins/Compiler&amp;quot;, select the compiler you installed, switch to the &amp;quot;Programs&amp;quot; page and press &amp;quot;Auto-detect&amp;quot;.&lt;br /&gt;
If you get a message saying that the compiler was auto-detected, congratulations!&lt;br /&gt;
If not, then press the button with the three dots next to the &amp;quot;Auto-detect&amp;quot; button and select the installation directory of your compiler manually.&lt;br /&gt;
&lt;br /&gt;
NOTE: ''The compiler's installation directory is exactly this: the installation directory. Not the &amp;quot;bin&amp;quot; subdirectory nor any other.''&lt;/div&gt;</summary>
		<author><name>Severach</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=FAQ&amp;diff=225</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=FAQ&amp;diff=225"/>
		<updated>2005-09-23T04:51:44Z</updated>

		<summary type="html">&lt;p&gt;Severach: /* I can't compile a multithreaded app with VC Toolkit! Where are the libraries? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General =&lt;br /&gt;
&lt;br /&gt;
== Is it possible to integrate the win32-help as in dev-cpp, to get help on the items under the caret? ==&lt;br /&gt;
&lt;br /&gt;
Integration of the win32 API helpfile should be a no-brainer. Someone could just write a really simple plugin and, upon invocation (through a shortcut possibly), look at the word under the cursor and invoke windows help... If you think you 're up to the task, I can help you with all the info you need. If not, I could write it myself but no promises on a release date ;)&lt;br /&gt;
&lt;br /&gt;
== Launching for the first time, Code::Blocks tells me I need to install GNU make. Is this necessary on a Windows system? ==&lt;br /&gt;
&lt;br /&gt;
Since version 1.0-beta5, no it is not. Code::Blocks works with GNU &amp;quot;make&amp;quot; [http://www.mingw.org/download.shtml (here)] or without it (default). To choose the build method, go to &amp;quot;Project/Build options&amp;quot;, switch to the &amp;quot;Other&amp;quot; tab and select the build method you prefer.&lt;br /&gt;
&lt;br /&gt;
== What licence is Code::Blocks released under? ==&lt;br /&gt;
&lt;br /&gt;
GNU General Public License 2 ([http://www.gnu.org/licenses/gpl.txt GPL])&lt;br /&gt;
&lt;br /&gt;
= Compiling =&lt;br /&gt;
&lt;br /&gt;
== What compiler can I use with Code::Blocks? ==&lt;br /&gt;
&lt;br /&gt;
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. The one provided with the default Code::Blocks installation, supports GNU GCC (MinGW/Cygwin), MS Visual C++ Free Toolkit 2003, Borland's C++ Compiler 5.5, DigitalMars Free Compiler., OpenWatcom and Small Device C Compiler (SDCC).&lt;br /&gt;
&lt;br /&gt;
== 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 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;
== I 'm using gcc compiler from an existing dev-cpp installation. How can I make it work? ==&lt;br /&gt;
&lt;br /&gt;
''As of version 1.0-beta6, if a default MinGW installation is not detected, a Dev-C++ installation is checked for and is used if detected.''&lt;br /&gt;
&lt;br /&gt;
You need to take two steps. First, set the compiler master path to the dev-cpp folder. It's under &amp;quot;Settings/Configure plugins/Compiler&amp;quot; in the &amp;quot;Programs&amp;quot; tab...&lt;br /&gt;
Second, you have to add two additional compiler (include) dirs. Go to &amp;quot;Settings/Configure plugins/Compiler&amp;quot; and in the &amp;quot;Compiler dirs&amp;quot; tab add &amp;quot;dev-cpp\include\c++&amp;quot; and &amp;quot;dev-cpp\include\c++\mingw32&amp;quot; (substituting &amp;quot;dev-cpp&amp;quot; with the actual dev-cpp installation folder).&lt;br /&gt;
&lt;br /&gt;
== I just installed Code::Blocks Beta4 and I can't compile anything with BCC. ==&lt;br /&gt;
&lt;br /&gt;
BCC is not supported 100% yet, unfortunately... The next release (namely 1.0-beta6) should address all BCC issues.&lt;br /&gt;
&lt;br /&gt;
== My project should be compiled with a custom makefile. Is it possible with Code::Blocks? ==&lt;br /&gt;
&lt;br /&gt;
Yes, as of version 1.0-beta4 it is supported. Go to project options and you 'll notice a &amp;quot;Custom Makefile&amp;quot; checkbox. If you check this, Code::Blocks will not create another Makefile for compiling but instead always use this Makefile. You have to understand, though, that it is your sole responsibility to keep this Makefile up to date.&lt;br /&gt;
Also make sure that &amp;quot;GNU make&amp;quot; is the selected build method for the specific compiler.&lt;br /&gt;
&lt;br /&gt;
== 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;
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;
== 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;
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;
== I can't compile a multithreaded app with VC Toolkit! Where are the libraries? ==&lt;br /&gt;
&lt;br /&gt;
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 are coming 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 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://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;
== Where are the libraries for the OpenGL / SDL / etc. projects? ==&lt;br /&gt;
&lt;br /&gt;
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;
== Is it possible to use Visual C++ 6.0 with Code::Blocks? ==&lt;br /&gt;
&lt;br /&gt;
As they say in ##C++ on FreeNode:&amp;lt;br&amp;gt;&lt;br /&gt;
cylon&amp;gt; msvc++6 is not a C++ compiler. It was made before the C++ standard, so it compiles some language that isn't C++. Upgrade.&lt;/div&gt;</summary>
		<author><name>Severach</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=FAQ&amp;diff=216</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=FAQ&amp;diff=216"/>
		<updated>2005-09-23T04:49:19Z</updated>

		<summary type="html">&lt;p&gt;Severach: /* I can't compile a multithreaded app with VC Toolkit! Where are the libraries? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= General =&lt;br /&gt;
&lt;br /&gt;
== Is it possible to integrate the win32-help as in dev-cpp, to get help on the items under the caret? ==&lt;br /&gt;
&lt;br /&gt;
Integration of the win32 API helpfile should be a no-brainer. Someone could just write a really simple plugin and, upon invocation (through a shortcut possibly), look at the word under the cursor and invoke windows help... If you think you 're up to the task, I can help you with all the info you need. If not, I could write it myself but no promises on a release date ;)&lt;br /&gt;
&lt;br /&gt;
== Launching for the first time, Code::Blocks tells me I need to install GNU make. Is this necessary on a Windows system? ==&lt;br /&gt;
&lt;br /&gt;
Since version 1.0-beta5, no it is not. Code::Blocks works with GNU &amp;quot;make&amp;quot; [http://www.mingw.org/download.shtml (here)] or without it (default). To choose the build method, go to &amp;quot;Project/Build options&amp;quot;, switch to the &amp;quot;Other&amp;quot; tab and select the build method you prefer.&lt;br /&gt;
&lt;br /&gt;
== What licence is Code::Blocks released under? ==&lt;br /&gt;
&lt;br /&gt;
GNU General Public License 2 ([http://www.gnu.org/licenses/gpl.txt GPL])&lt;br /&gt;
&lt;br /&gt;
= Compiling =&lt;br /&gt;
&lt;br /&gt;
== What compiler can I use with Code::Blocks? ==&lt;br /&gt;
&lt;br /&gt;
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. The one provided with the default Code::Blocks installation, supports GNU GCC (MinGW/Cygwin), MS Visual C++ Free Toolkit 2003, Borland's C++ Compiler 5.5, DigitalMars Free Compiler., OpenWatcom and Small Device C Compiler (SDCC).&lt;br /&gt;
&lt;br /&gt;
== 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 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;
== I 'm using gcc compiler from an existing dev-cpp installation. How can I make it work? ==&lt;br /&gt;
&lt;br /&gt;
''As of version 1.0-beta6, if a default MinGW installation is not detected, a Dev-C++ installation is checked for and is used if detected.''&lt;br /&gt;
&lt;br /&gt;
You need to take two steps. First, set the compiler master path to the dev-cpp folder. It's under &amp;quot;Settings/Configure plugins/Compiler&amp;quot; in the &amp;quot;Programs&amp;quot; tab...&lt;br /&gt;
Second, you have to add two additional compiler (include) dirs. Go to &amp;quot;Settings/Configure plugins/Compiler&amp;quot; and in the &amp;quot;Compiler dirs&amp;quot; tab add &amp;quot;dev-cpp\include\c++&amp;quot; and &amp;quot;dev-cpp\include\c++\mingw32&amp;quot; (substituting &amp;quot;dev-cpp&amp;quot; with the actual dev-cpp installation folder).&lt;br /&gt;
&lt;br /&gt;
== I just installed Code::Blocks Beta4 and I can't compile anything with BCC. ==&lt;br /&gt;
&lt;br /&gt;
BCC is not supported 100% yet, unfortunately... The next release (namely 1.0-beta6) should address all BCC issues.&lt;br /&gt;
&lt;br /&gt;
== My project should be compiled with a custom makefile. Is it possible with Code::Blocks? ==&lt;br /&gt;
&lt;br /&gt;
Yes, as of version 1.0-beta4 it is supported. Go to project options and you 'll notice a &amp;quot;Custom Makefile&amp;quot; checkbox. If you check this, Code::Blocks will not create another Makefile for compiling but instead always use this Makefile. You have to understand, though, that it is your sole responsibility to keep this Makefile up to date.&lt;br /&gt;
Also make sure that &amp;quot;GNU make&amp;quot; is the selected build method for the specific compiler.&lt;br /&gt;
&lt;br /&gt;
== 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;
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;
== 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;
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;
== I can't compile a multithreaded app with VC Toolkit! Where are the libraries? ==&lt;br /&gt;
&lt;br /&gt;
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 are coming 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 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://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_c_run.2d.time_libraries.asp&lt;br /&gt;
http://sapdb.2scale.net/moin.cgi/MS_20C_2b_2b_20Toolkit&lt;br /&gt;
&lt;br /&gt;
== Where are the libraries for the OpenGL / SDL / etc. projects? ==&lt;br /&gt;
&lt;br /&gt;
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;
== Is it possible to use Visual C++ 6.0 with Code::Blocks? ==&lt;br /&gt;
&lt;br /&gt;
As they say in ##C++ on FreeNode:&amp;lt;br&amp;gt;&lt;br /&gt;
cylon&amp;gt; msvc++6 is not a C++ compiler. It was made before the C++ standard, so it compiles some language that isn't C++. Upgrade.&lt;/div&gt;</summary>
		<author><name>Severach</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Creating_a_simple_%22Hello_World%22_plugin&amp;diff=298</id>
		<title>Creating a simple &quot;Hello World&quot; plugin</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Creating_a_simple_%22Hello_World%22_plugin&amp;diff=298"/>
		<updated>2005-09-23T04:43:22Z</updated>

		<summary type="html">&lt;p&gt;Severach: /* Further Information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''NOTE''': This tutorial was written using the Code::Blocks final beta under windows.&lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
&lt;br /&gt;
This tutorial assumes you have a working version of Code::Blocks installed and some knowledge of how to deal with projects, in particular how to compile them. In order to use the Code::Blocks SDK you must also have a working version of wxWidgets installed. For more information see [[Compiling wxWidgets 2.4.2 to develop Code::Blocks (MSW)|Compiling wxWidgets 2.4.2 to develop Code::Blocks]] or&lt;br /&gt;
[[Compiling wxWidgets 2.6.1 to develop Code::Blocks (MSW)|Compiling wxWidgets 2.6.1 to develop Code::Blocks]], depending on which version you want to use.&lt;br /&gt;
&lt;br /&gt;
To develop Code::Blocks plugins you will also need a copy of the Code::Blocks SDK, which can be found on the Code::Blocks [https://www.codeblocks.org/downloads.shtml download page]. Install this to somewhere sensible that you will remember later on. Personally I keep the SDK in a folder called CodeBlocks\sdk (which contains the include/ and lib/ from in the zip). This means that the header files refered to in the tutorial would be found under ''Codeblocks\sdk\include'', so ''cbPlugin.h'' is ''Codeblocks\sdk\include\cbPlugin.h'' for example.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
This tutorial will guide you through the creation of a simple &amp;quot;Hello World&amp;quot; plugin, which when activated displays &amp;quot;Hello World!&amp;quot; in the Code::Blocks log tab below the editor. This could be done completely by hand, but Code::Blocks contains a very useful plugin project generator (which, incidntally, is itself a plugin), so we'll use that.&lt;br /&gt;
&lt;br /&gt;
==Creating the Plugin Project==&lt;br /&gt;
&lt;br /&gt;
Select the '''Plugins-&amp;gt;Code::Blocks Plugin Wizard''' option from the main menu bar and choose a suitable project name and location. Save the project, and another dialog will be shown which allows you to select various options for your plugin.&lt;br /&gt;
&lt;br /&gt;
===Plugin Type===&lt;br /&gt;
&lt;br /&gt;
The Code::Blocks SDK contains interfaces for various different types of plugins in the ''cbPlugin.h'' file. The drop down ''Plugin type'' list in the wizard allows you to select which type of plugin you wish to build - essentially which class the main plugin interface class will inherit from. We want to build a Tool plugin, so select that from the list. Tool type plugins are added to the Plugins main menu submenu automatically, and their ''Execute'' method is called when they are selected by the user. We will use this later in order to display our message.&lt;br /&gt;
&lt;br /&gt;
===Plugin Info===&lt;br /&gt;
&lt;br /&gt;
The ''Plugin name'' field is the name of the plugin interface class which the wizard will create. Enter &amp;quot;HelloWorldPlugin&amp;quot; here. More information can be provided by clicking on the ''Enter Plugin Info'' button. The fields here are fairly self explanitory, but one which you should pay particular attention to is the ''Title'' field, since this is what Code::Blocks will use to refer to the plugin in the menus. In the generated code, the plugin info is kept in the plugin class' ''m_PluginInfo'' member, which is of the type ''PluginInfo'' and is set in the plugin interface class' constructor. ''PluginInfo'' is detailed in ''cbPlugin.h'', if you want to go take a look.&lt;br /&gt;
&lt;br /&gt;
===Provides Configuration Dialog===&lt;br /&gt;
&lt;br /&gt;
This indicates whether or not the plugin is to provide a configuration dialog which can be accessed through the '''Settings-&amp;gt;Configure Plugins''' submenu. We don't need one, so leave this box unchecked.&lt;br /&gt;
&lt;br /&gt;
===Filenames===&lt;br /&gt;
&lt;br /&gt;
The filenames should have been filled in automatically by the dialog when you entered the Plugin name, if you used the name &amp;quot;HelloWorldPlugin&amp;quot;, for example, these should be helloworldplugin.h and helloworldplugin.cpp respectively. If you want to change the names of the files generated, this is where to do it (this tutorial will assume you have left them as the default values).&lt;br /&gt;
&lt;br /&gt;
The guard-block box is simply if you wish to place inclusion guards in the header file, and if you do what symbol to use. If you don't know what these are then just leave it as it is.&lt;br /&gt;
&lt;br /&gt;
Click '''Create''' and take note of the next dialog box's message about the SDK include and library directories, that's what we'll be dealing with next.&lt;br /&gt;
&lt;br /&gt;
==Letting the project know where to find the SDK==&lt;br /&gt;
&lt;br /&gt;
Code::Blocks should have created a new project called &amp;quot;Custom Plugin&amp;quot;. Before we can compile anything we need to make sure that the compiler knows where the sdk files are in order to include headers and link the libraries. If your compiler has not been setup to know where wxWidgets is yet then this must also be done (see the links in Prerequisites for more details).&lt;br /&gt;
&lt;br /&gt;
Right click on the project and select '''Build Options''' then the '''Directories''' tab. Here, make sure the '''Compiler''' tab is selected then click on the '''Add''' button. Browse to where you unzipped the SDK and select the ''include'' directory (for example ''C:\CodeBlocks\sdk\include'' if you installed the SDK there), then click okay and select whether or not the path should remain relative. Go to the &amp;quot;Linker&amp;quot; tab and add the &amp;quot;lib&amp;quot; directory under where the SDK was installed in similar fashion (following my install, this would be in ''C:\CodeBlocks\sdk\lib'').&lt;br /&gt;
&lt;br /&gt;
===Linker Options===&lt;br /&gt;
&lt;br /&gt;
If you click on the '''Linker Options''' tab at the top level in the Build Options dialog, you will see that the plugin is being linked to the Code::Blocks core library (codeblocks) and the wxWidgets library (wxmsw242 under windows ''NOTE: The plugin generator uses 2.4.2, if you're using a different version of wxWidgets then change this'').&lt;br /&gt;
&lt;br /&gt;
===Compiler Options===&lt;br /&gt;
&lt;br /&gt;
The '''Compiler Options''' tab shows that several symbols have been defined when the plugin is compiled: ''__GNUWIN32__'', ''WXUSINGDLL'' and ''BUILDING_PLUGIN'' in this case (using windows). The first two are indicators to wxWidgets of the compiler and DLL options to use, and the last is an indicator to the Code::Blocks SDK headers that they are being used to build a plugin (which affects whether or not symbols are exported or imported for the DLL - see ''cbPlugin.h'' for example).&lt;br /&gt;
&lt;br /&gt;
==Adding Functionality==&lt;br /&gt;
&lt;br /&gt;
The plugin wizard should have generated us helloworldplugin.h and helloworldplugin.cpp. The header file contains the class definition and a C function declaration which is used to load the plugin when asked by the main Code::Blocks program (''GetPlugin''). What we're interested in, however, is the definition of the class methods in helloworldplugin.cpp. The plugin wizard has generated us a constructor in which the ''m_PluginInfo'' information is set, and three methods. ''OnAttatch'' and ''OnRelease'' are methods called to inform the plugin when it is attached (the user has selected it and Code::Blocks has loaded it) or released (Code::Blocks no longer has a use for it or is shutting down). Since our plugin does not need to perform any actions on loading or shutting down, we can leave these as they are.&lt;br /&gt;
&lt;br /&gt;
The ''Execute'' method, as mentioned earlier, is what we are really interested in. We are going to use the MessageManager class to add a log message in the window beneath the editor. To do this we will need access to both the Manager class and the MessageManager class. Manager is and internal Code::Blocks class which is used to keep track of internal information and the various task specific managers (like the MessageManager and EditorManager - which is used to keep track of all the open files and their editors). MessageManager is responsible for both normal output and debugging output (see ''messagemanager.h'' for more details). Replace the generated Execute method with this new one:&lt;br /&gt;
&lt;br /&gt;
 int HelloWorldPlugin::Execute()&lt;br /&gt;
 {&lt;br /&gt;
     if( !IsAttached() )&lt;br /&gt;
         return -1;&lt;br /&gt;
     Manager::Get()-&amp;gt;GetMessageManager()-&amp;gt;Log( _(&amp;quot;Hello World!&amp;quot;) );&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
This new method uses the Manager's static Get method to return the singleton Manager object, then uses that to access the MessageManager through the GetMessageManager method. MessageManager has a method called ''Log'' which appends a string to the bottom of the output log, so we use this to add the &amp;quot;Hello World!&amp;quot; message. The _() construct is part of wxWidgets' internationalisation utilities, and more information on it can be found in the wxWidgets [http://wiki.wxwidgets.org/wiki.pl?WxWidgets_Source_Oddities documentation].&lt;br /&gt;
&lt;br /&gt;
The first two lines check to see if the plugin has been attatched (in other words selected by the user in the '''Plugins-&amp;gt;Plugin Manager''' menu), and thus whether it should perform any action at all. As far as I can tell, the return value of Execute is not used anywhere, but all the default plugins use -1 for failure and 0 for success (much like the main function in a C program) so that is what is used here.&lt;br /&gt;
&lt;br /&gt;
Add headfiles to helloworldplugin.cpp &lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;manager.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;messagemanager.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we have our code in place we are ready to...&lt;br /&gt;
&lt;br /&gt;
==Compile! (And test)==&lt;br /&gt;
&lt;br /&gt;
This should produce a file called HelloWorldPlugin.dll, which can be tested by copying to the ''CodeBlocks\share\CodeBlocks\plugins\'' directory and restarting Code::Blocks. There should now be an option in the '''Plugins''' menu for &amp;quot;Hello World&amp;quot; (or whatever the title field was set to when the plugin was generated - or in ''m_PluginInfo''). Click on this and &amp;quot;Hello World!&amp;quot; should appear in the Code::Blocks logging window. Congratulations, you've just created your first plugin!&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
&lt;br /&gt;
It is essential to learn how wxWidgets works if you seriously plan on working on plugins, since most of Code::Blocks depends on it, and you will find it easier to add and manipulate components if you have a firm grasp of its principles. More information on this can be found in the wxWidgets [http://www.wxwidgets.org/docs.htm documentation]. Another good place to learn from is the source code from the existing Code::Blocks plugins, which can be downloaded along with the rest of the Code::Blocks source code from the [https://www.codeblocks.org/downloads.shtml download page]. &lt;br /&gt;
&lt;br /&gt;
Hopefully this tutorial has helped you work through a few fundamentals in terms of creating plugins, happy coding!&lt;/div&gt;</summary>
		<author><name>Severach</name></author>
	</entry>
	<entry>
		<id>https://wiki.codeblocks.org/index.php?title=Creating_a_simple_%22Hello_World%22_plugin&amp;diff=214</id>
		<title>Creating a simple &quot;Hello World&quot; plugin</title>
		<link rel="alternate" type="text/html" href="https://wiki.codeblocks.org/index.php?title=Creating_a_simple_%22Hello_World%22_plugin&amp;diff=214"/>
		<updated>2005-09-23T04:36:02Z</updated>

		<summary type="html">&lt;p&gt;Severach: /* Prerequisites */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''NOTE''': This tutorial was written using the Code::Blocks final beta under windows.&lt;br /&gt;
&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
&lt;br /&gt;
This tutorial assumes you have a working version of Code::Blocks installed and some knowledge of how to deal with projects, in particular how to compile them. In order to use the Code::Blocks SDK you must also have a working version of wxWidgets installed. For more information see [[Compiling wxWidgets 2.4.2 to develop Code::Blocks (MSW)|Compiling wxWidgets 2.4.2 to develop Code::Blocks]] or&lt;br /&gt;
[[Compiling wxWidgets 2.6.1 to develop Code::Blocks (MSW)|Compiling wxWidgets 2.6.1 to develop Code::Blocks]], depending on which version you want to use.&lt;br /&gt;
&lt;br /&gt;
To develop Code::Blocks plugins you will also need a copy of the Code::Blocks SDK, which can be found on the Code::Blocks [https://www.codeblocks.org/downloads.shtml download page]. Install this to somewhere sensible that you will remember later on. Personally I keep the SDK in a folder called CodeBlocks\sdk (which contains the include/ and lib/ from in the zip). This means that the header files refered to in the tutorial would be found under ''Codeblocks\sdk\include'', so ''cbPlugin.h'' is ''Codeblocks\sdk\include\cbPlugin.h'' for example.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
This tutorial will guide you through the creation of a simple &amp;quot;Hello World&amp;quot; plugin, which when activated displays &amp;quot;Hello World!&amp;quot; in the Code::Blocks log tab below the editor. This could be done completely by hand, but Code::Blocks contains a very useful plugin project generator (which, incidntally, is itself a plugin), so we'll use that.&lt;br /&gt;
&lt;br /&gt;
==Creating the Plugin Project==&lt;br /&gt;
&lt;br /&gt;
Select the '''Plugins-&amp;gt;Code::Blocks Plugin Wizard''' option from the main menu bar and choose a suitable project name and location. Save the project, and another dialog will be shown which allows you to select various options for your plugin.&lt;br /&gt;
&lt;br /&gt;
===Plugin Type===&lt;br /&gt;
&lt;br /&gt;
The Code::Blocks SDK contains interfaces for various different types of plugins in the ''cbPlugin.h'' file. The drop down ''Plugin type'' list in the wizard allows you to select which type of plugin you wish to build - essentially which class the main plugin interface class will inherit from. We want to build a Tool plugin, so select that from the list. Tool type plugins are added to the Plugins main menu submenu automatically, and their ''Execute'' method is called when they are selected by the user. We will use this later in order to display our message.&lt;br /&gt;
&lt;br /&gt;
===Plugin Info===&lt;br /&gt;
&lt;br /&gt;
The ''Plugin name'' field is the name of the plugin interface class which the wizard will create. Enter &amp;quot;HelloWorldPlugin&amp;quot; here. More information can be provided by clicking on the ''Enter Plugin Info'' button. The fields here are fairly self explanitory, but one which you should pay particular attention to is the ''Title'' field, since this is what Code::Blocks will use to refer to the plugin in the menus. In the generated code, the plugin info is kept in the plugin class' ''m_PluginInfo'' member, which is of the type ''PluginInfo'' and is set in the plugin interface class' constructor. ''PluginInfo'' is detailed in ''cbPlugin.h'', if you want to go take a look.&lt;br /&gt;
&lt;br /&gt;
===Provides Configuration Dialog===&lt;br /&gt;
&lt;br /&gt;
This indicates whether or not the plugin is to provide a configuration dialog which can be accessed through the '''Settings-&amp;gt;Configure Plugins''' submenu. We don't need one, so leave this box unchecked.&lt;br /&gt;
&lt;br /&gt;
===Filenames===&lt;br /&gt;
&lt;br /&gt;
The filenames should have been filled in automatically by the dialog when you entered the Plugin name, if you used the name &amp;quot;HelloWorldPlugin&amp;quot;, for example, these should be helloworldplugin.h and helloworldplugin.cpp respectively. If you want to change the names of the files generated, this is where to do it (this tutorial will assume you have left them as the default values).&lt;br /&gt;
&lt;br /&gt;
The guard-block box is simply if you wish to place inclusion guards in the header file, and if you do what symbol to use. If you don't know what these are then just leave it as it is.&lt;br /&gt;
&lt;br /&gt;
Click '''Create''' and take note of the next dialog box's message about the SDK include and library directories, that's what we'll be dealing with next.&lt;br /&gt;
&lt;br /&gt;
==Letting the project know where to find the SDK==&lt;br /&gt;
&lt;br /&gt;
Code::Blocks should have created a new project called &amp;quot;Custom Plugin&amp;quot;. Before we can compile anything we need to make sure that the compiler knows where the sdk files are in order to include headers and link the libraries. If your compiler has not been setup to know where wxWidgets is yet then this must also be done (see the links in Prerequisites for more details).&lt;br /&gt;
&lt;br /&gt;
Right click on the project and select '''Build Options''' then the '''Directories''' tab. Here, make sure the '''Compiler''' tab is selected then click on the '''Add''' button. Browse to where you unzipped the SDK and select the ''include'' directory (for example ''C:\CodeBlocks\sdk\include'' if you installed the SDK there), then click okay and select whether or not the path should remain relative. Go to the &amp;quot;Linker&amp;quot; tab and add the &amp;quot;lib&amp;quot; directory under where the SDK was installed in similar fashion (following my install, this would be in ''C:\CodeBlocks\sdk\lib'').&lt;br /&gt;
&lt;br /&gt;
===Linker Options===&lt;br /&gt;
&lt;br /&gt;
If you click on the '''Linker Options''' tab at the top level in the Build Options dialog, you will see that the plugin is being linked to the Code::Blocks core library (codeblocks) and the wxWidgets library (wxmsw242 under windows ''NOTE: The plugin generator uses 2.4.2, if you're using a different version of wxWidgets then change this'').&lt;br /&gt;
&lt;br /&gt;
===Compiler Options===&lt;br /&gt;
&lt;br /&gt;
The '''Compiler Options''' tab shows that several symbols have been defined when the plugin is compiled: ''__GNUWIN32__'', ''WXUSINGDLL'' and ''BUILDING_PLUGIN'' in this case (using windows). The first two are indicators to wxWidgets of the compiler and DLL options to use, and the last is an indicator to the Code::Blocks SDK headers that they are being used to build a plugin (which affects whether or not symbols are exported or imported for the DLL - see ''cbPlugin.h'' for example).&lt;br /&gt;
&lt;br /&gt;
==Adding Functionality==&lt;br /&gt;
&lt;br /&gt;
The plugin wizard should have generated us helloworldplugin.h and helloworldplugin.cpp. The header file contains the class definition and a C function declaration which is used to load the plugin when asked by the main Code::Blocks program (''GetPlugin''). What we're interested in, however, is the definition of the class methods in helloworldplugin.cpp. The plugin wizard has generated us a constructor in which the ''m_PluginInfo'' information is set, and three methods. ''OnAttatch'' and ''OnRelease'' are methods called to inform the plugin when it is attached (the user has selected it and Code::Blocks has loaded it) or released (Code::Blocks no longer has a use for it or is shutting down). Since our plugin does not need to perform any actions on loading or shutting down, we can leave these as they are.&lt;br /&gt;
&lt;br /&gt;
The ''Execute'' method, as mentioned earlier, is what we are really interested in. We are going to use the MessageManager class to add a log message in the window beneath the editor. To do this we will need access to both the Manager class and the MessageManager class. Manager is and internal Code::Blocks class which is used to keep track of internal information and the various task specific managers (like the MessageManager and EditorManager - which is used to keep track of all the open files and their editors). MessageManager is responsible for both normal output and debugging output (see ''messagemanager.h'' for more details). Replace the generated Execute method with this new one:&lt;br /&gt;
&lt;br /&gt;
 int HelloWorldPlugin::Execute()&lt;br /&gt;
 {&lt;br /&gt;
     if( !IsAttached() )&lt;br /&gt;
         return -1;&lt;br /&gt;
     Manager::Get()-&amp;gt;GetMessageManager()-&amp;gt;Log( _(&amp;quot;Hello World!&amp;quot;) );&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
This new method uses the Manager's static Get method to return the singleton Manager object, then uses that to access the MessageManager through the GetMessageManager method. MessageManager has a method called ''Log'' which appends a string to the bottom of the output log, so we use this to add the &amp;quot;Hello World!&amp;quot; message. The _() construct is part of wxWidgets' internationalisation utilities, and more information on it can be found in the wxWidgets [http://wiki.wxwidgets.org/wiki.pl?WxWidgets_Source_Oddities documentation].&lt;br /&gt;
&lt;br /&gt;
The first two lines check to see if the plugin has been attatched (in other words selected by the user in the '''Plugins-&amp;gt;Plugin Manager''' menu), and thus whether it should perform any action at all. As far as I can tell, the return value of Execute is not used anywhere, but all the default plugins use -1 for failure and 0 for success (much like the main function in a C program) so that is what is used here.&lt;br /&gt;
&lt;br /&gt;
Add headfiles to helloworldplugin.cpp &lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;manager.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;messagemanager.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we have our code in place we are ready to...&lt;br /&gt;
&lt;br /&gt;
==Compile! (And test)==&lt;br /&gt;
&lt;br /&gt;
This should produce a file called HelloWorldPlugin.dll, which can be tested by copying to the ''CodeBlocks\share\CodeBlocks\plugins\'' directory and restarting Code::Blocks. There should now be an option in the '''Plugins''' menu for &amp;quot;Hello World&amp;quot; (or whatever the title field was set to when the plugin was generated - or in ''m_PluginInfo''). Click on this and &amp;quot;Hello World!&amp;quot; should appear in the Code::Blocks logging window. Congratulations, you've just created your first plugin!&lt;br /&gt;
&lt;br /&gt;
==Further Information==&lt;br /&gt;
&lt;br /&gt;
It is essential to learn how wxWidgets works if you seriously plan on working on plugins, since most of Code::Blocks depends on it, and you will find it easier to add and manipulate components if you have a firm grasp of its principles. More information on this can be found in the wxWidgets [http://www.wxwidgets.org/docs.htm documentation]. Another good place to learn from is the source code from the existing Code::Blocks plugins, which can be downloaded along with the rest of the Code::Blocks source code from the [https://www.codeblocks.org/modules.php?op=modload&amp;amp;name=Downloads&amp;amp;file=index&amp;amp;req=viewsdownload&amp;amp;sid=3 download page]. &lt;br /&gt;
&lt;br /&gt;
Hopefully this tutorial has helped you work through a few fundamentals in terms of creating plugins, happy coding!&lt;/div&gt;</summary>
		<author><name>Severach</name></author>
	</entry>
</feed>