Hello,

I am very much new to C++ programming in MS Windows environment. I am asked to develop a C++ application with QT 3.2.3 on Windows platform with MS Visual C++ 7.1 .Net edition. I have been developing C programs mostly on solaris and linux platforms.

After realizing that Qt 3.2.3 does not have a logging API other then some qDebug, qFatal, qWarning, I have seached for a logging library and found three different log4c++ implementation . After seaching for a while I understood that log4cxx is a part of Apache and decided to use log4cxx.

I have compiled the library as directed even though gathering eveything ant, jre, apr, cppunit took sometime.

Anyhow, I wanted to test the library, honestly for 2 days I have not been able to compile even simple examples. I receive zillions of errors that I provided in the end of the mail. I suspect that I may be missing to include some compilation flags. I used the qt qmake tool to generate a makefile as I am eventually use this tool with qt library.

In my test example I have only one file main.cpp which I have stolen form trivial.cpp (I have only changed the name of the trivial.cpp)

/*
 * Copyright 2003,2004 The Apache Software Foundation.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
#include <log4cxx/logstring.h>
#include <stdlib.h>
#include <log4cxx/logger.h>
#include <log4cxx/basicconfigurator.h>
#include <log4cxx/helpers/exception.h>
#include <log4cxx/ndc.h>

using namespace log4cxx;
using namespace log4cxx::helpers;

int main()
{
  int result = EXIT_SUCCESS;
  try
  {
    BasicConfigurator::configure();
    LoggerPtr rootLogger = Logger::getRootLogger();

    NDC::push("trivial context");

    LOG4CXX_DEBUG(rootLogger, "debug message");
    LOG4CXX_INFO(rootLogger, "info message");
    LOG4CXX_WARN(rootLogger, "warn message");
    LOG4CXX_ERROR(rootLogger, "error message");
    LOG4CXX_FATAL(rootLogger, "fatal message");

    NDC::pop();
  }
  catch(std::exception&)
  {
    result = EXIT_FAILURE;
  }

  return result;
}

-------------------------------------------------------

MY QT PROJECT FILE

TEMPLATE = app

# Input
CONFIG  +=  qt warn_on console thread exceptions
INCLUDEPATH += . D:\libs\log4cxx\include
LIBS = D:\libs\log4cxx\lib\log4cxx.lib
DEFINES = QT_DLL
SOURCES += main.cpp



------------------------------------------------------------

GENERATED MAKEFILE FROM PROJECT FILE ABOVE

#############################################################################
# Makefile for building: wrk
# Generated by qmake (1.06c) (Qt 3.2.3) on: Mon Aug 07 15:07:14 2006
# Project:  wrk.pro
# Template: app
# Command: $(QMAKE) -o Makefile wrk.pro
#############################################################################

####### Compiler, tools and options

CC        =    cl
CXX        =    cl
LEX        = flex
YACC        = byacc
CFLAGS    =    -nologo -Zm200 -W3 -MD -O1 -GX -GX -GR  -DQT_DLL -DQT_DLL -DQT_THREAD_SUPPORT -DQT_NO_DEBUG
CXXFLAGS    =    -nologo -Zm200 -W3 -w34100 -w34189 -MD -O1 -GX -GX -GR  -DQT_DLL -DQT_DLL -DQT_THREAD_SUPPORT -DQT_NO_DEBUG
LEXFLAGS    =
YACCFLAGS    =-d
INCPATH    =     -I"." -I"D:\libs\log4cxx\include" -I"$(QTDIR)\include" -I"D:\toktay\projects\yayici\den2" -I"D:\apps\qt\3.2.3\mkspecs\win32- msvc.net"
LINK    =    link
LFLAGS    =    /NOLOGO /DELAYLOAD:comdlg32.dll /DELAYLOAD:oleaut32.dll /DELAYLOAD:winmm.dll /DELAYLOAD:wsock32.dll /DELAYLOAD:winspool.dll /SUBSYSTEM:CONSOLE /LIBPATH:"$(QTDIR)\lib"
LIBS    =     "qt-mt323.lib" "qtmain.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib " "oleaut32.lib" "uuid.lib" "imm32.lib" "winmm.lib" "wsock32.lib" "winspool.lib" "delayimp.lib" "D:\libs\log4cxx\lib\log4cxx.lib" " opengl32.lib" "glu32.lib"
MOC        =    $(QTDIR)\bin\moc.exe
UIC        =    $(QTDIR)\bin\uic.exe
QMAKE        =    qmake
IDC        =    $(QTDIR)\bin\idc.exe
IDL        =    midl
ZIP        =    zip -r -9
COPY_FILE    =       copy
COPY_DIR    =       copy
DEL_FILE    =       del
DEL_DIR    =       rmdir
MOVE        =       move
CHK_DIR_EXISTS =    if not exist
MKDIR        =    mkdir

####### Files

HEADERS =   
SOURCES =    main.cpp
OBJECTS =    main.obj
FORMS =   
UICDECLS =   
UICIMPLS =   
SRCMOC    =   
OBJMOC    =   
DIST    =   
TARGET    =    wrk.exe

####### Implicit rules

.SUFFIXES: .c .cpp .cc .cxx .C

{.}.cpp{}.obj::
    $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo @<<
    $<
<<

{.}.cc{}.obj::
    $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo @<<
    $<
<<

{.}.cxx{}.obj::
    $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo @<<
    $<
<<

{.}.C{}.obj::
    $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo @<<
    $<
<<

{.}.c{}.obj::
    $(CC) -c $(CFLAGS) $(INCPATH) -Fo @<<
    $<
<<

####### Build rules

all: Makefile $(TARGET)

$(TARGET):  $(UICDECLS) $(OBJECTS) $(OBJMOC)
    $(LINK) $(LFLAGS) /OUT:$(TARGET) @<<
      $(OBJECTS) $(OBJMOC) $(LIBS)
<<


mocables: $(SRCMOC)
uicables: $(UICIMPLS) $(UICDECLS)

Makefile: wrk.pro  D:\apps\qt\3.2.3\mkspecs\win32-msvc.net\qmake.conf ..\..\..\..\apps\qt\3.2.3\lib\qtmain.prl
    $(QMAKE) -o Makefile wrk.pro
qmake:
    @$(QMAKE) -o Makefile wrk.pro

dist:
    $(ZIP) wrk.zip $(SOURCES) $(HEADERS) $(DIST) $(FORMS) D:/toktay/projects/yayici/den2/wrk.pro ..\..\..\..\apps\qt\3.2.3\lib\qtmain.prl 

uiclean:
mocclean:
clean: uiclean mocclean
    -$(DEL_FILE) main.obj


FORCE:

distclean: clean
    -$(DEL_FILE) $(TARGET)

####### Compile

main.obj: main.cpp

####### Install

install: all 

uninstall: 

--------------------------------------------------------------------------------------------------

THE WARNINGS THAT I RECEIVE after nmake

D:\toktay\projects\yayici\den2>nmake

Microsoft (R) Program Maintenance Utility Version 7.10.3077
Copyright (C) Microsoft Corporation.  All rights reserved.

        cl -c -nologo -Zm200 -W3 -w34100 -w34189 -MD -O1 -GX -GX -GR  -DUNICODE
-DWIN32 -DQT_DLL -DQT_THREAD_SUPPORT -DQT_NO_DEBUG -I"." -I"D:\libs\log4cxx\incl
ude" -I"D:\apps\qt\3.2.3\include" -I"D:\toktay\projects\yayici\den2" -I"D:\apps\
qt\3.2.3\mkspecs\win32-msvc.net" -Fo @D:\temp\nm472.tmp
main.cpp
D:\libs\log4cxx\include\log4cxx\helpers\appenderattachableimpl.h(45) : warning C
4251: 'log4cxx::helpers::AppenderAttachableImpl::appenderList' : class 'std::vec
tor<_Ty>' needs to have dll-interface to be used by clients of class 'log4cxx::h
elpers::AppenderAttachableImpl'
        with
        [
            _Ty=log4cxx::AppenderPtr
        ]
D:\libs\log4cxx\include\log4cxx\helpers\appenderattachableimpl.h(106) : warning
C4250: 'log4cxx::helpers::AppenderAttachableImpl' : inherits 'log4cxx::helpers::
ObjectImpl::log4cxx::helpers::ObjectImpl::addRef' via dominance
        D:\libs\log4cxx\include\log4cxx\helpers\objectimpl.h(32) : see declarati
on of 'log4cxx::helpers::ObjectImpl::addRef'
D:\libs\log4cxx\include\log4cxx\helpers\appenderattachableimpl.h(106) : warning
C4250: 'log4cxx::helpers::AppenderAttachableImpl' : inherits 'log4cxx::helpers::
ObjectImpl::log4cxx::helpers::ObjectImpl::releaseRef' via dominance
        D:\libs\log4cxx\include\log4cxx\helpers\objectimpl.h(33) : see declarati
on of 'log4cxx::helpers::ObjectImpl::releaseRef'
D:\libs\log4cxx\include\log4cxx\level.h(134) : warning C4251: 'log4cxx::Level::A
LL' : class 'log4cxx::helpers::ObjectPtrT<T>' needs to have dll-interface to be
used by clients of class 'log4cxx::Level'
        with
        [
            T=log4cxx::Level
        ]
D:\libs\log4cxx\include\log4cxx\level.h(140) : warning C4251: 'log4cxx::Level::F
ATAL' : class 'log4cxx::helpers::ObjectPtrT<T>' needs to have dll-interface to b
e used by clients of class 'log4cxx::Level'
        with
        [
            T=log4cxx::Level
        ]
D:\libs\log4cxx\include\log4cxx\level.h(145) : warning C4251: 'log4cxx::Level::E
RROR' : class 'log4cxx::helpers::ObjectPtrT<T>' needs to have dll-interface to b
e used by clients of class 'log4cxx::Level'
        with
        [
            T=log4cxx::Level
        ]
D:\libs\log4cxx\include\log4cxx\level.h(150) : warning C4251: 'log4cxx::Level::W
ARN' : class 'log4cxx::helpers::ObjectPtrT<T>' needs to have dll-interface to be
 used by clients of class 'log4cxx::Level'
        with
        [
            T=log4cxx::Level
        ]
D:\libs\log4cxx\include\log4cxx\level.h(156) : warning C4251: 'log4cxx::Level::I
NFO' : class 'log4cxx::helpers::ObjectPtrT<T>' needs to have dll-interface to be
 used by clients of class 'log4cxx::Level'
        with
        [
            T=log4cxx::Level
        ]
D:\libs\log4cxx\include\log4cxx\level.h(162) : warning C4251: 'log4cxx::Level::D
EBUG' : class 'log4cxx::helpers::ObjectPtrT<T>' needs to have dll-interface to b
e used by clients of class 'log4cxx::Level'
        with
        [
            T=log4cxx::Level
        ]
D:\libs\log4cxx\include\log4cxx\level.h(167) : warning C4251: 'log4cxx::Level::O
FF' : class 'log4cxx::helpers::ObjectPtrT<T>' needs to have dll-interface to be
used by clients of class 'log4cxx::Level'
        with
        [
            T=log4cxx::Level
        ]
D:\libs\log4cxx\include\log4cxx\helpers\resourcebundle.h(82) : warning C4251: 'l
og4cxx::helpers::ResourceBundle::parent' : class 'log4cxx::helpers::ObjectPtrT<T
>' needs to have dll-interface to be used by clients of class 'log4cxx::helpers:
:ResourceBundle'
        with
        [
            T=log4cxx::helpers::ResourceBundle
        ]
D:\libs\log4cxx\include\log4cxx\logger.h(68) : warning C4251: 'log4cxx::Logger::
level' : class 'log4cxx::helpers::ObjectPtrT<T>' needs to have dll-interface to
be used by clients of class 'log4cxx::Logger'
        with
        [
            T=log4cxx::Level
        ]
D:\libs\log4cxx\include\log4cxx\logger.h(73) : warning C4251: 'log4cxx::Logger::
parent' : class 'log4cxx::helpers::ObjectPtrT<T>' needs to have dll-interface to
 be used by clients of class 'log4cxx::Logger'
        with
        [
            T=log4cxx::Logger
        ]
D:\libs\log4cxx\include\log4cxx\logger.h(79) : warning C4251: 'log4cxx::Logger::
resourceBundle' : class 'log4cxx::helpers::ObjectPtrT<T>' needs to have dll-inte
rface to be used by clients of class 'log4cxx::Logger'
        with
        [
            T=log4cxx::helpers::ResourceBundle
        ]
D:\libs\log4cxx\include\log4cxx\logger.h(85) : warning C4251: 'log4cxx::Logger::
aai' : class 'log4cxx::helpers::ObjectPtrT<T>' needs to have dll-interface to be
 used by clients of class 'log4cxx::Logger'
        with
        [
            T=log4cxx::helpers::AppenderAttachableImpl
        ]
D:\libs\log4cxx\include\log4cxx\logger.h(593) : warning C4250: 'log4cxx::Logger'
 : inherits 'log4cxx::helpers::ObjectImpl::log4cxx::helpers::ObjectImpl::addRef'
 via dominance
        D:\libs\log4cxx\include\log4cxx\helpers\objectimpl.h(32) : see declarati
on of 'log4cxx::helpers::ObjectImpl::addRef'
D:\libs\log4cxx\include\log4cxx\logger.h(593) : warning C4250: 'log4cxx::Logger'
 : inherits 'log4cxx::helpers::ObjectImpl::log4cxx::helpers::ObjectImpl::release
Ref' via dominance
        D:\libs\log4cxx\include\log4cxx\helpers\objectimpl.h(33) : see declarati
on of 'log4cxx::helpers::ObjectImpl::releaseRef'
        link /NOLOGO /DELAYLOAD:comdlg32.dll /DELAYLOAD:oleaut32.dll /DELAYLOAD:
winmm.dll /DELAYLOAD:wsock32.dll /DELAYLOAD:winspool.dll /SUBSYSTEM:CONSOLE /LIB
PATH:"D:\apps\qt\3.2.3\lib" /OUT:wrk.exe @D:\temp\nm473.tmp
LINK : warning LNK4199: /DELAYLOAD:comdlg32.dll ignored; no imports found from c
omdlg32.dll
LINK : warning LNK4199: /DELAYLOAD:oleaut32.dll ignored; no imports found from o
leaut32.dll
LINK : warning LNK4199: /DELAYLOAD:winmm.dll ignored; no imports found from winm
m.dll
LINK : warning LNK4199: /DELAYLOAD:wsock32.dll ignored; no imports found from ws
ock32.dll
LINK : warning LNK4199: /DELAYLOAD: winspool.dll ignored; no imports found from w
inspool.dll

----------------------------------------------

An execuatable is geneated but I no output written to the console when I executed.

Anyhelp would be much appreciated.

Sincerely





Reply via email to