Monday, January 24, 2011

Installing log4cxx with Visual C++

This post describes how to download and build log4cxx for Visual C++. The following steps assume that you do not have the Platform SDK (2003+) installed. If you do, some steps - noted as "not necessary if you have Platform SDK (2003+) installed" - are not necessary.

Download:
  1. Download log4cxx from http://logging.apache.org/log4cxx/download.html. I downloaded apache-log4cxx-0.10.0.zip.
  2. Download APR (Apache Portable Runtime) from http://apr.apache.org/download.cgi. I downloaded apr-1.4.2-win32.zip.
  3. Download APR-Util from http://apr.apache.org/download.cgi. I downloaded apr-util-1.3.10-win32.zip.
Install:
  1. Unzip each archive under C:\3pty, resulting in directories C:\3pty\apache-log4cxx-0.10.0, C:\3pty\apr-1.4.2, and C:\3pty\apr-util-1.3.10.
  2. The log4cxx Visual Studio projects assume peer directories named apr and apr-util, so the version-specific directories must be copied (or renamed) accordingly. I choose to copy, in case I need to revert.
  3. Copy directory C:\3pty\apr-1.4.2 to C:\3pty\apr, by issuing command: C:\3pty>xcopy /E /I apr-1.4.2 apr
  4. Copy directory C:\3pty\apr-1.4.2 to C:\3pty\apr, by issuing command: C:\3pty>xcopy /E /I apr-util-1.3.10 apr-util
Customise:
  1. Edit C:\3pty\apr-util\include\apu.hw, changing two lines:
    • The line containing #define APU_HAVE_ODBC 1 is changed to #define APU_HAVE_ODBC 0. NOTE: this step is not necessary if you have Platform SDK (2003+) installed.
    • The line containing #define APU_HAVE_APR_ICONV 1 is changed to #define APU_HAVE_APR_ICONV 0.
  2. Edit C:\3pty\apr-util\include\apr_ldap.hw, changing one line:
    • The line containing #define APU_HAS_LDAP 1 is changed to #define APU_HAS_LDAP 0.
  3. Open C:\3pty\apache-log4cxx-0.10.0\projects\log4cxx.dsw, navigate into the aprutil project, into the dbd folder, and select the apr_dbd_odbc.c file. Open the settings for this file (right-click Settings, or press Alt-F7), select the General tab, and check Exclude file from build. Do this for all configurations. NOTE: this step is not necessary if you have Platform SDK (2003+) installed. Close Visual Studio.
  4. At the project root level - in C:\3pty\apache-log4cxx-0.10.0 - execute the command configure. Do not execute the command configure-aprutil, unless you're working within cygwin.
Build:
  1. Open C:\3pty\apache-log4cxx-0.10.0\projects\log4cxx.dsw, select Batch Build from the Build menu, then check the bottom two options log4cxx - Win32 Debug and log4cxx - Win32 Release, and press the Build button. There'll be a bunch of warnings, but at the end you should find it has built the DLLs C:\3pty\apache-log4cxx-0.10.0\projects\debug\log4cxx.dll and C:\3pty\apache-log4cxx-0.10.0\projects\release\log4cxx.dll.

1 comment:

  1. Should be except for log4cxx I`ve to load and properly install api-ms-win-crt-runtime-l1-1-0.dll missing https://fix4dll.com/apimswincrtruntimel110_dll and to simplify the task of using them, I'll be provided with files to fix my DLL error on Windows 10 according to suitable version.
    This method well worked for my colleague, so I hadn`t hesitated to use the source and now I wanna recommend it to anyone who's got problems alike that.

    ReplyDelete