[ 
https://issues.apache.org/jira/browse/LOGCXX-552?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Jipa closed LOGCXX-552.
------------------------------
    Resolution: Not A Problem

Hi,

 

The fact you said is not anymore needed to copy log4cxx.hw and 
log4cxx_private.hw files manually on windows helped me.

On windows from src/main/include all .h files to a different location (+2 those 
from above manually), but the new headers for windows were at this location: 
build/src/main/include/log4cxx/ (after compiling log4cxx solution)

With those headers copied I solved all issues.

I dont know why only on windows I was not using from the beginning cmake.exe .. 
-G "Visual Studio 16 2019" -A x64 -DCMAKE_BUILD_TYPE=Release 
-DCMAKE_INSTALL_PREFIX=install_path so it could be avoided all manual copies.

 

Thanks,

Stefan Jipa

> Log4cxx 0.12.1 it is not working on windows platform
> ----------------------------------------------------
>
>                 Key: LOGCXX-552
>                 URL: https://issues.apache.org/jira/browse/LOGCXX-552
>             Project: Log4cxx
>          Issue Type: Bug
>          Components: Build, Documentation
>    Affects Versions: 0.12.1
>            Reporter: Stefan Jipa
>            Priority: Major
>             Fix For: 0.12.1
>
>
> Hi,
> We want to upgrade log4cxx from 0.11.0 to 0.12.1.
> We have some problems when trying to use log4cxx 0.12.1 on windows platform.
> We succeded to compile it (here steps (we are using c++17)):
> -copy src/main/include/log4cxx/log4cxx.hw to 
> src/main/include/log4cxx/log4cxx.h
> -copy src/main/include/log4cxx/private/log4cxx_private.hw 
> src/main/include/log4cxx/private/log4cxx_private.h
> -we disable odbc by commenting:
>     apache-log4cxx-0.12.1\src\main\include\CMakeLists.txt
>                     #if(WIN32)
>                     #    CHECK_INCLUDE_FILES(sqlext.h HAS_ODBC)
>                     #else()
>                     #    include(FindPkgConfig)
>                     #
>                     #    pkg_check_modules( odbc QUIET odbc )
>                     #    if(${odbc_FOUND})
>                     #        set(HAS_ODBC 1)
>                     #    endif(${odbc_FOUND})
>                     #endif(WIN32)
> -we use x64 Native Tools Command Prompt for VS 2019 (c++17)
>     cmake -S . -B build -G"Visual Studio 16 2019" -A x64 
> -DAPR_INCLUDE_DIR=path_to_apr\include\apr-1\ 
> -DAPR_LIBRARIES=path_to_apr\lib\libapr-1.lib 
> -DAPR_UTIL_INCLUDE_DIR=path_to_apr-util\include\apr-1\ 
> -DAPR_UTIL_LIBRARIES=path_to_apr-util\lib\libaprutil-1.lib
>     -DBUILD_TESTING=OFF -DEXPAT_LIBRARY=path_to_expat\lib\expat.lib 
> -DEXPAT_INCLUDE_DIR=path_to_expat\include
> -open build/log4cxx.sln with VS 2019 and compile it in release mode x64 (with 
> Windows SDK Version 10.0.19041.0)
> -copy from src/main/include all .h files to a different location
> -copy from build/src/main/cpp/Release/ log4cxx dll and lib files to a 
> different location
> -delete build folder
> -in another x64 Native Tools Command Prompt for VS 2019
>     cmake -S . -B build -G"Visual Studio 16 2019" -A x64 
> -DBUILD_SHARED_LIBS=OFF -DAPR_INCLUDE_DIR=path_to_apr\include\apr-1\ 
> -DAPR_LIBRARIES=path_to_apr\lib\libapr-1.lib 
> -DAPR_UTIL_INCLUDE_DIR=path_to_apr-util\include\apr-1\ 
> -DAPR_UTIL_LIBRARIES=path_to_apr-util\lib\libaprutil-1.lib
>     -DBUILD_TESTING=OFF -DEXPAT_LIBRARY=path_to_expat\lib\expat.lib 
> -DEXPAT_INCLUDE_DIR=path_to_expat\include
> -open build/log4cxx.sln with VS 2019 and compile it in release mode x64 (with 
> Windows SDK Version 10.0.19041.0 and Code Generation -> Runtime Library -> 
> Multi-threaded(/MT)) 
> -copy build/src/main/cpp/Release/log4cxx.lib to a different location
> When we try to compile a module which is using log4cxx code we get a stack 
> full of errors
> generated from PATH_to_log4cxx_0.12.1\include\log4cxx/logger.h caused by 
> log4cxx::helpers::ObjectPtrT<T>.
> We saw that log4cxx.hw was not updated and we replaced all apparitions of 
> log4cxx::helpers::ObjectPtrT<T>
> with std::shared_ptr<T>. With this we managed to get rid of all that errors, 
> but we have this stack of errors
> generated directly from log4cxx code:
> PATH_to_log4cxx_0.12.1\include\log4cxx/logger.h(105): error C2039: 
> 'LoggerRepositoryWeakPtr': is not a member of 'log4cxx::spi'
> PATH_to_log4cxx_0.12.1\include\log4cxx/logger.h(45): note: see declaration of 
> 'log4cxx::spi'
> PATH_to_log4cxx_0.12.1\include\log4cxx/logger.h(105): error C3646: 
> 'repository': unknown override specifier
> PATH_to_log4cxx_0.12.1\include\log4cxx/logger.h(105): error C4430: missing 
> type specifier - int assumed. Note: C++ does not support default-int
> PATH_to_log4cxx_0.12.1\include\log4cxx/logger.h(626): error C2039: 
> 'LoggerRepositoryWeakPtr': is not a member of 'log4cxx::spi'
> PATH_to_log4cxx_0.12.1\include\log4cxx/logger.h(45): note: see declaration of 
> 'log4cxx::spi'
> PATH_to_log4cxx_0.12.1\include\log4cxx/logger.h(626): error C3646: 
> 'getLoggerRepository': unknown override specifier
> PATH_to_log4cxx_0.12.1\include\log4cxx/logger.h(626): error C2059: syntax 
> error: '('
> PATH_to_log4cxx_0.12.1\include\log4cxx/logger.h(626): error C2238: unexpected 
> token(s) preceding ';'
> PATH_to_log4cxx_0.12.1\include\log4cxx/logger.h(1467): error C2039: 
> 'LoggerRepositoryWeakPtr': is not a member of 'log4cxx::spi'
> PATH_to_log4cxx_0.12.1\include\log4cxx/logger.h(45): note: see declaration of 
> 'log4cxx::spi'
> PATH_to_log4cxx_0.12.1\include\log4cxx/logger.h(1467): error C2061: syntax 
> error: identifier 'LoggerRepositoryWeakPtr'
> PATH_to_log4cxx_0.12.1\include\log4cxx/logger.h(1729): error C3646: 'mutex': 
> unknown override specifier
> PATH_to_log4cxx_0.12.1\include\log4cxx/logger.h(1729): error C4430: missing 
> type specifier - int assumed. Note: C++ does not support default-int
> PATH_to_log4cxx_0.12.1\include\log4cxx/appenderskeleton.h(77): error C2039: 
> 'shared_mutex': is not a member of 'log4cxx'
> PATH_to_log4cxx_0.12.1\include\log4cxx/appenderskeleton.h(35): note: see 
> declaration of 'log4cxx'
> PATH_to_log4cxx_0.12.1\include\log4cxx/appenderskeleton.h(77): error C3646: 
> 'mutex': unknown override specifier
> PATH_to_log4cxx_0.12.1\include\log4cxx/appenderskeleton.h(77): error C4430: 
> missing type specifier - int assumed. Note: C++ does not support default-int
> PATH_to_log4cxx_0.12.1\include\log4cxx/writerappender.h(28): fatal error 
> C1083: Cannot open include file: 'log4cxx/boost-std-configuration.h': No such 
> file or directory
> I mention that we mananged to upgrade succesfully on unix (RHEL 8.3 and Suse 
> 15.2) to log4cxx 0.12.1.
> Also I adapted our code regarding this 
> https://logging.apache.org/log4cxx/latest_stable/changelog.html
> Please patch log4cxx 0.12.1 on windows platform or if there are some step 
> which we are missing/doing wrong when we compile log4cxx 0.12.1 on windows 
> please guide us.
> Can you check if log4cxx.hw needs more changes to fix this or is also a 
> problem elsewhere?
>  
> Thanks,
> Stefan Jipa



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to