[ 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)