mirror of
https://github.com/berkeleydb/libdb.git
synced 2024-11-16 09:06:25 +00:00
162 lines
7.7 KiB
HTML
162 lines
7.7 KiB
HTML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||
<head>
|
||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||
<title>Windows FAQ</title>
|
||
<link rel="stylesheet" href="gettingStarted.css" type="text/css" />
|
||
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
|
||
<link rel="start" href="index.html" title="Berkeley DB Installation and Build Guide" />
|
||
<link rel="up" href="build_win.html" title="Chapter 5. Building Berkeley DB for Windows" />
|
||
<link rel="prev" href="build_win_notes.html" title="Windows notes" />
|
||
<link rel="next" href="build_wince.html" title="Chapter 6. Building Berkeley DB for Windows Mobile" />
|
||
</head>
|
||
<body>
|
||
<div xmlns="" class="navheader">
|
||
<div class="libver">
|
||
<p>Library Version 11.2.5.3</p>
|
||
</div>
|
||
<table width="100%" summary="Navigation header">
|
||
<tr>
|
||
<th colspan="3" align="center">Windows FAQ</th>
|
||
</tr>
|
||
<tr>
|
||
<td width="20%" align="left"><a accesskey="p" href="build_win_notes.html">Prev</a> </td>
|
||
<th width="60%" align="center">Chapter 5.
|
||
Building Berkeley DB for Windows
|
||
</th>
|
||
<td width="20%" align="right"> <a accesskey="n" href="build_wince.html">Next</a></td>
|
||
</tr>
|
||
</table>
|
||
<hr />
|
||
</div>
|
||
<div class="sect1" lang="en" xml:lang="en">
|
||
<div class="titlepage">
|
||
<div>
|
||
<div>
|
||
<h2 class="title" style="clear: both"><a id="build_win_faq"></a>Windows FAQ</h2>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="orderedlist">
|
||
<ol type="1">
|
||
<li>
|
||
<span class="bold">
|
||
<strong>My Win* C/C++ application crashes in the Berkeley DB library when Berkeley DB calls
|
||
fprintf (or some other standard C library function).</strong>
|
||
</span>
|
||
<p>You should be using the "Debug Multithreaded DLL" compiler option in
|
||
your application when you link with the
|
||
build_windows\Debug\libdb48d.lib library (this .lib file
|
||
is actually a stub for libdb48d.DLL). To check this
|
||
setting in Visual C++, choose the <span class="emphasis"><em>Project/Settings</em></span> menu
|
||
item and select <span class="emphasis"><em>Code Generation</em></span> under the tab marked
|
||
<span class="emphasis"><em>C/C++</em></span>; and see the box marked <span class="emphasis"><em>Use runtime
|
||
library</em></span>. This should be set to <span class="emphasis"><em>Debug Multithreaded DLL</em></span>.
|
||
If your application is linked against the static library,
|
||
build_windows\Debug\libdb48sd.lib; then, you will want
|
||
to set <span class="emphasis"><em>Use runtime library</em></span> to <span class="emphasis"><em>Debug Multithreaded</em></span>.</p>
|
||
<p>Setting this option incorrectly can cause multiple versions of the
|
||
standard libraries to be linked into your application (one on behalf
|
||
of your application, and one on behalf of the Berkeley DB library). That
|
||
violates assumptions made by these libraries, and traps can result.</p>
|
||
<p>
|
||
Also, using different Visual Studio compilers in the application and
|
||
libraries can lead to a crash. So rebuild the application
|
||
with the same Visual C++ version as that of the library.
|
||
</p>
|
||
</li>
|
||
<li>
|
||
<span class="bold">
|
||
<strong>Why are the build options for DB_DLL marked as "Use MFC in a Shared DLL"?
|
||
Does Berkeley DB use MFC?</strong>
|
||
</span>
|
||
<p>Berkeley DB does not use MFC at all. It does however, call malloc and free
|
||
and other facilities provided by the Microsoft C runtime library. We
|
||
found in our work that many applications and libraries are built
|
||
assuming MFC, and specifying this for Berkeley DB solves various
|
||
interoperation issues, and guarantees that the right runtime libraries
|
||
are selected. Note that because we do not use MFC facilities, the MFC
|
||
library DLL is not marked as a dependency for libdb.dll, but the
|
||
appropriate Microsoft C runtime is.</p>
|
||
</li>
|
||
<li>
|
||
<span class="bold">
|
||
<strong>How can I build Berkeley DB for <a class="ulink" href="http://www.mingw.org" target="_top">MinGW</a>?</strong>
|
||
</span>
|
||
<p>Follow the instructions in <a class="xref" href="build_unix.html#build_unix_intro" title="Building for UNIX/POSIX">Building for UNIX/POSIX</a>, and specify the --enable-mingw option to the
|
||
configuration script. This configuration option currently only builds
|
||
static versions of the library, it does not yet build a DLL version of
|
||
the library, and file sizes are limited to 2GB (2^32 bytes.)</p>
|
||
</li>
|
||
<li>
|
||
<span class="bold">
|
||
<strong>How can I build a Berkeley DB for Windows 98/ME?</strong>
|
||
</span>
|
||
<p>
|
||
Windows 98/ME is no longer supported by Berkeley DB. The following is
|
||
therefore only of interest to historical users of Berkeley DB.
|
||
</p>
|
||
<p>
|
||
By default on Windows, Berkeley DB supports internationalized
|
||
filenames by treating all directory paths and filenames passed to
|
||
Berkeley DB methods as UTF-8 encoded strings. All paths are
|
||
internally converted to wide character strings and passed to the
|
||
wide character variants of Windows system calls.
|
||
</p>
|
||
<p>
|
||
This allows applications to create and open databases with names
|
||
that cannot be represented with ASCII names while maintaining
|
||
compatibility with applications that work purely with ASCII paths.
|
||
</p>
|
||
<p>
|
||
Windows 98 and ME do not support Unicode paths directly. To build for
|
||
those versions of Windows, either:
|
||
</p>
|
||
<div class="itemizedlist">
|
||
<ul type="disc">
|
||
<li>
|
||
<p>
|
||
Follow the instructions at
|
||
<a class="ulink" href="http://msdn.microsoft.com/en-us/goglobal/bb688166.aspx" target="_top">Microsoft's web site</a>.
|
||
</p>
|
||
</li>
|
||
<li>
|
||
<p>Open the workspace or solution file with Visual Studio. Then
|
||
open the Project properties/settings section for the project you need to build
|
||
(at least db_dll). In the <span class="emphasis"><em>C/C++->Preprocessor->Preprocessor
|
||
Definitions</em></span> section, remove <span class="emphasis"><em>_UNICODE</em></span> and
|
||
<span class="emphasis"><em>UNICODE</em></span> entries. Add in an entry of
|
||
<span class="emphasis"><em>_MBCS</em></span>. Build the project as normal.</p>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<p>The ASCII builds will also work on Windows NT/2K/XP/2003 and Windows7, but will
|
||
not translate paths to wide character strings.</p>
|
||
</li>
|
||
</ol>
|
||
</div>
|
||
</div>
|
||
<div class="navfooter">
|
||
<hr />
|
||
<table width="100%" summary="Navigation footer">
|
||
<tr>
|
||
<td width="40%" align="left"><a accesskey="p" href="build_win_notes.html">Prev</a> </td>
|
||
<td width="20%" align="center">
|
||
<a accesskey="u" href="build_win.html">Up</a>
|
||
</td>
|
||
<td width="40%" align="right"> <a accesskey="n" href="build_wince.html">Next</a></td>
|
||
</tr>
|
||
<tr>
|
||
<td width="40%" align="left" valign="top">Windows notes </td>
|
||
<td width="20%" align="center">
|
||
<a accesskey="h" href="index.html">Home</a>
|
||
</td>
|
||
<td width="40%" align="right" valign="top"> Chapter 6.
|
||
Building Berkeley DB for Windows Mobile
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</div>
|
||
</body>
|
||
</html>
|