This commit was manufactured by cvs2svn to create tag 'WX_2_2_9'.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/tags/WX_2_2_9@13364 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
218
docs/tech/tn0004.htm
Normal file
218
docs/tech/tn0004.htm
Normal file
@@ -0,0 +1,218 @@
|
||||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="Author" content="chris elliott">
|
||||
<meta name="GENERATOR" content="Mozilla/4.7 [en] (Win95; I) [Netscape]">
|
||||
<title>Compiling wx Samples in the Borland IDE</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h2>
|
||||
Compiling wxWindows samples with the Borland CBuilder</h2>
|
||||
|
||||
This document is available online <a href="http://biolpc22.york.ac.uk/wx/bc/ide.html">here</a>.<P>
|
||||
|
||||
<h2>
|
||||
Before you begin</h2>
|
||||
This refers to the 2.1.15 wxWindows distribution. It is my account of trying
|
||||
to compile the samples so I can use the Borland IDE to edit/compile/debug.
|
||||
I have used CBuilder 1.00 (2 patches, nice and fast) CBuilder 3 (slower)
|
||||
and CBuilder 4 (only occasionally)
|
||||
<p>Make sure that the wx distribution is extracted to a path with no spaces
|
||||
in it, and preferably on the root of your drive. Borland's compilers sometimes
|
||||
have problems with spaces and with the long paths which occur if you try
|
||||
to place it in a tree like <tt>d:\compiler\gui\wx...</tt>
|
||||
<h2>
|
||||
Part 1 Build the library</h2>
|
||||
Build the <b>wx\wx32.lib</b> and related files using the command line compiler
|
||||
<br>Run a command prompt in the <tt>wx/src/msw</tt> directory and type
|
||||
<p><tt>set wxwin=pathtowx</tt>
|
||||
<br><tt>set bccdir=pathtobc4</tt>
|
||||
<br><tt>make -f makefile.b32</tt>
|
||||
<p>In my case this I extracted the wx distribution in <b>c:\ </b>and the
|
||||
compiler is in <b>w:\borland\cb\bin </b>so this looks:
|
||||
<p><tt>set wxwin=c:\wx</tt>
|
||||
<br><tt>set bccdir=w:\borland\cb</tt>
|
||||
<br><tt>make -f makefile.b32</tt>
|
||||
<p>If this doesn't <b>compile</b>,
|
||||
<ul>
|
||||
<li>
|
||||
you've probably got the <b><tt>set wxwin </tt></b>command wrong,</li>
|
||||
|
||||
<li>
|
||||
or the path was not set by the Borland setup</li>
|
||||
</ul>
|
||||
If this doesn't <b>link</b>,
|
||||
<ul>
|
||||
<li>
|
||||
you've probably got the <b><tt>set bccdir </tt></b>command wrong</li>
|
||||
</ul>
|
||||
|
||||
<hr WIDTH="100%">
|
||||
<h2>
|
||||
To make the samples</h2>
|
||||
|
||||
<h3>
|
||||
Solution 1</h3>
|
||||
|
||||
<h4>
|
||||
<a href="http://biolpc22.york.ac.uk/wx/bc/download.html">Download</a> a zip file which contains modifed
|
||||
cpp, mak and bpr files - it will overwrite your wx distribution cpp files!</h4>
|
||||
|
||||
<h4>
|
||||
Solution 2</h4>
|
||||
Creating the files by hand . This is for the calendar sample; you will
|
||||
have to change the names for the other samples
|
||||
<ul>
|
||||
<li>
|
||||
Create a calendar.mak file [must have the same name as the cpp file] in
|
||||
a plain text editor with <a href="http://biolpc22.york.ac.uk/wx/bc/calendar.mak">this contents</a></li>
|
||||
</ul>
|
||||
<tt>#-----------------------------------------------------------------------------</tt>
|
||||
<br><tt>#this is for Borland CBuilder IDE v1 and 3</tt>
|
||||
<br><tt>#add a \ at the end of the lines if you editor breaks the long
|
||||
lines up</tt>
|
||||
<br><tt>#copy this into notepad and save from there</tt>
|
||||
<br><tt>#-----------------------------------------------------------------------------</tt>
|
||||
<br><tt>!ifndef BCB</tt>
|
||||
<br><tt>BCB = $(MAKEDIR)\..</tt>
|
||||
<br><tt>!endif</tt>
|
||||
<br><tt>PROJECT = calendar.exe</tt>
|
||||
<br><tt>OBJFILES =</tt>
|
||||
<br><tt>RESFILES = calendar.res</tt>
|
||||
<br><tt>RESDEPEN = $(RESFILES)</tt>
|
||||
<br><tt>LIBFILES =</tt>
|
||||
<br><tt>#-----------------------------------------------------------------------------</tt>
|
||||
<br><tt>CFLAG1 = -Od -v -a1 -c</tt>
|
||||
<br><tt># -Od disable optimisations -v debug -a1 byte align -c compile
|
||||
only (matches my make for the library)</tt>
|
||||
<br><tt>CFLAG2 = -DINC_OLE2;__WIN95__;__WXMSW__;__WINDOWS__;WIN32;__BIDE__;-I$(BCB)\include;$(BCB)\include\vcl;..\..\include;
|
||||
-H=BC32.CSM</tt>
|
||||
<br><tt>PFLAGS =</tt>
|
||||
<br><tt>RFLAGS = -DINC_OLE2;__WIN95__;__WXMSW__;__WINDOWS__;WIN32;__BIDE__;
|
||||
-I$(BCB)\include;..\..\include;</tt>
|
||||
<br><tt>LFLAGS = -L$(BCB)\lib;$(BCB)\lib\obj;..\..\lib -aa -Tpe -v -V4.0
|
||||
-c</tt>
|
||||
<br><tt>IFLAGS =</tt>
|
||||
<br><tt>LINKER = ilink32</tt>
|
||||
<br><tt>#-----------------------------------------------------------------------------</tt>
|
||||
<br><tt>ALLOBJ = c0w32.obj $(OBJFILES)</tt>
|
||||
<br><tt>ALLRES = $(RESFILES)</tt>
|
||||
<br><tt>ALLLIB = $(LIBFILES) vcl.lib xpm.lib wx32.lib ole2w32.lib import32.lib
|
||||
odbc32.lib cw32mt.lib</tt>
|
||||
<br><tt>#you will need to add other libraries to the line above, eg the
|
||||
jpeg.lib for image samples</tt>
|
||||
<br><tt>---------------------------------------------------------------------------</tt>
|
||||
<br><tt>.autodepend</tt>
|
||||
<br>
|
||||
<p><tt>#-----------------------------------------------------------------------------</tt>
|
||||
<br><tt>$(PROJECT): $(OBJFILES) $(RESDEPEN)</tt>
|
||||
<p><tt>#end of file</tt>
|
||||
<br>
|
||||
<ul>
|
||||
<li>
|
||||
modify the .cpp file to include these<a href="http://biolpc22.york.ac.uk/wx/bc/calendar_include.cpp">
|
||||
lines </a>near the top</li>
|
||||
</ul>
|
||||
<tt>#ifdef __BIDE__</tt>
|
||||
<br><tt>#define _NO_VCL</tt>
|
||||
<br><tt>#include "condefs.h"</tt>
|
||||
<br><tt>#define WinMain WinMain</tt>
|
||||
<br><tt> // USEUNIT ("another.cpp"); // use a line like this
|
||||
if you have more than one .cpp file</tt>
|
||||
<br><tt> USERC ("calendar.rc");</tt>
|
||||
<br><tt>#endif</tt>
|
||||
<br>
|
||||
<p>In CBuilder 1 you can use <b>Open Project</b> to open the mak file and
|
||||
edit/compile/debug.
|
||||
<br>In CBuilder 3 and 4, then you can use <b>Open Project </b>and choose
|
||||
the Open Borland CBuilder 1 Project from the drop down file types. The
|
||||
system will modify the mak file and update it for you.
|
||||
<p>Now try compiling it in the ide.
|
||||
<h4>
|
||||
Hints:</h4>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
You can set it up for normal and debug modes (change the -v switch in CFLAG1
|
||||
and LFLAG)</li>
|
||||
|
||||
<li>
|
||||
If you get problems saying Project undefined, then copy the text using
|
||||
a simple editor like notepad to the file minimal.mak (I have had problems
|
||||
in CBuilder 1.00 with Unix style line endings)</li>
|
||||
|
||||
<li>
|
||||
If you want to avoid the warnings about hiding virtual methods add <b><tt>-w-hid
|
||||
</tt></b>to the CFLAGS1 line</li>
|
||||
|
||||
<li>
|
||||
the #define WinMain WinMain line allows CBuilder to think it has a non-VCL
|
||||
<tt>main </tt>function</li>
|
||||
|
||||
<li>
|
||||
the USEUNIT macros tell CBuilder which other source files to include, without
|
||||
needing a VCL form</li>
|
||||
|
||||
<li>
|
||||
the condefs.h file defines the USEUNIT macros for non-VCL use</li>
|
||||
|
||||
<li>
|
||||
For the other samples, change the names of the cpp and rc files. If you
|
||||
have multiple files, just add more USEUNIT and USERC macros</li>
|
||||
</ul>
|
||||
|
||||
<h3>
|
||||
Solution 3</h3>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
download the wxWindows-2.1.15-bcb.zip file,</li>
|
||||
|
||||
<li>
|
||||
extract it</li>
|
||||
|
||||
<li>
|
||||
use the <b><tt>idetomak</tt></b> (CBuilder 1) or <b><tt>idetobpr</tt></b>
|
||||
(CBuilder 3/4) utility on the <b><tt>.ide</tt></b> file in the samples
|
||||
directory. This modifies the cpp source and makes a "suitable" bpr file
|
||||
(at least in CBuilder 1/3/4).</li>
|
||||
|
||||
<li>
|
||||
add the location of the wx/include files in the project | options
|
||||
| directory dialog</li>
|
||||
</ul>
|
||||
I found in CBuilder 1 that the <tt>idetomak</tt> utility did not manage
|
||||
to convert all the samples, but <tt>idetobpr</tt> worked OK in CBuilder
|
||||
3 and 4. I have a report that not all the bpr files made inb CBuilder 4
|
||||
are correct
|
||||
<h2>
|
||||
Error with ODBC32</h2>
|
||||
Sometimes you get an error saying that there are unreolved externals in
|
||||
ODBC. The soltuion is to run a command prompt in your <b><tt>wx\lib </tt></b>directory
|
||||
and use the <b><tt>implib </tt></b>command:
|
||||
<p><tt>C:\wx\lib><b>implib odbc32 c:\windows\system\odbc32.dll</b></tt>
|
||||
<p>This creates the necessary library, odbc32.lib
|
||||
<h2>
|
||||
Unresolved Problem</h2>
|
||||
<tt>In Borland CBuilder 1.00 (with linker service patch) I frequently
|
||||
get an error</tt>
|
||||
<p><tt>Turbo Incremental Link Version 1.0 Copyright (c) 1997 Borland
|
||||
International</tt>
|
||||
<br><tt>Fatal: Assertion failed: typeInx < typeCnt at "ilinkdbg.c",
|
||||
line 2060</tt>
|
||||
<br><tt>Fatal: Access violation. Program terminated.</tt>
|
||||
<br><tt>Error: Internal failure -- retrying link...</tt>
|
||||
<br><tt>Fatal: Assertion failed: typeInx < typeCnt at "ilinkdbg.c",
|
||||
line 2060</tt>
|
||||
<br><tt>Fatal: Access violation. Program terminated.</tt>
|
||||
<p><tt>** error 2 ** deleting minimal.exe</tt>
|
||||
<p>I have not been able to track down why sometimes this error occurs and
|
||||
other times it is OK
|
||||
<br>I have not seen this in Cbuilder 3 or 4
|
||||
<p>
|
||||
<hr WIDTH="100%">
|
||||
<p>Page updated on 31 May 2000 by Chris Elliott
|
||||
</body>
|
||||
</html>
|
Reference in New Issue
Block a user