building log4cxx in vs 2010 c++

后端 未结 4 818
情深已故
情深已故 2020-12-16 01:31

This is driving me crazy, I\'m trying to building the log4cxx library in order to use in a c++ project I\'ve been using. I\'m on a win7 host running VS2010 express c++ editi

4条回答
  •  难免孤独
    2020-12-16 02:10

    Chapter 1 Official Steps

    We are going to follow the steps here, http://logging.apache.org/log4cxx/building/vstudio.html. However, we must make changes to adapt to windows/VS201*.

    1. download later version of log4cxx which is apache log4cxx 0.10 from here, http://logging.apache.org/log4cxx/download.html

    2. download dependencies from https://archive.apache.org/dist/apr/

    3. The official building guideline is quite easy to follow:

    unzip apr-1.2.11-win32-src.zip
    rename apr-1.2.11 apr
    unzip apr-util-1.2.10-win32-src.zip
    rename apr-util-1.2.10 apr-util
    cd apache-log4cxx-0.10.0
    configure
    configure-aprutil
    
    1. i recommand you install gow in your developer machine, then you'll have many unix/linux like tools, very convenient. or if you have git, you can add git cmd tools into your env.
    configure
    configure-aprutil
    

    above 2 cmd requires sed.exe, install it (gow/git) before execute them. or you can change apu.hw and apr_ldap.hw manually:

    Open apr_ldap.hw and find the entry #define APR_HAS_LDAP, set it to 0 and save the file, too. Open apu.hw and find the entry #define APU_HAVE_APR_ICONV, set it to 0 and save the file

    Chapter 2 Building Log4cxx

    1. Now we have to convert *.dsw to *.cxproj. To make it smooth, just launch Visual Studio 201* and open log4cxx.dsw. VS will ask if you like to convert everything. Simply click Yes.

    2. Set log4cxx as startup project.

    3. Open project log4cxx's properties window, add other 3 projects as references, in here:   properties -> common properties -> framework and references .
    4. Hit F7, if you see error c2252, this is because LOG4CXX_LIST_DEF define error, go to its definition and change it to

    #define LOG4CXX_LIST_DEF(N, T) typedef std::vector N

    like this,

    old:

    #define LOG4CXX_LIST_DEF(N, T) \
    template class LOG4CXX_EXPORT std::allocator; \
    template class LOG4CXX_EXPORT std::vector; \
    typedef std::vector N
    

    new:

    #define LOG4CXX_LIST_DEF(N, T) typedef std::vector N
    
    1. and u will meet another err about insert_iterator, simply add #include< iterator> to relative file

    2. Done! enjoy your log4cxx!

提交回复
热议问题