Я пытаюсь связать log4cpp с моим проектом. Я использую CMake, и я не могу понять, как это сделать.Связывание библиотеки log4cpp с проектом cmake
log4cpp является установка на projectfolder/log4cpp/(бен/включать/Lib/... в нем)
Я использую следующий Findlog4cpp.cmake:
IF (LOG4CPP_FOUND)
SET(LOG4CPP_FIND_QUIETLY TRUE)
ENDIF (LOG4CPP_FOUND)
FIND_PATH(LOG4CPP_INCLUDE_DIR log4cpp/FileAppender.hh
"./log4cpp/include/"
)
FIND_LIBRARY(LOG4CPP_LIBRARIES
NAMES liblog4cpp.so
PATHS "./log4cpp/lib"
)
SET(LOG4CPP_FOUND 0)
IF(LOG4CPP_INCLUDE_DIR)
IF(LOG4CPP_LIBRARIES)
SET(LOG4CPP_FOUND 1 CACHE INTERNAL "log4cpp found")
IF (NOT LOG4CPP_FIND_QUIETLY)
MESSAGE(STATUS "Found Log4CPP")
ENDIF (NOT LOG4CPP_FIND_QUIETLY)
ENDIF(LOG4CPP_LIBRARIES)
ENDIF(LOG4CPP_INCLUDE_DIR)
MARK_AS_ADVANCED(
LOG4CPP_INCLUDE_DIR
LOG4CPP_LIBRARIES
)
и в моих CMakeLists. TXT я называю это:
...
FIND_PACKAGE(log4cpp REQUIRED)
INCLUDE_DIRECTORIES(${LOG4CPP_INCLUDE_DIR})
SET(LIBS ${LOG4CPP_LIBRARIES} ${LIBS})
MESSAGE("############################# ${LOG4CPP_LIBRARIES}")
MESSAGE("############################# ${LOG4CPP_INCLUDE_DIR}")
...
выход:
-- Found Log4CPP
############################# /SOMEPATH/projectfolder/log4cpp/lib/liblog4cpp.so
############################# /SOMEPATH/projectfolder/log4cpp/include
-- Configuring done
-- Generating done
-- Build files have been written to: /SOMEPATH/projectfolder/
Тогда, когда я запускаю сделать у меня на следующие ошибки:
/SOMEPATH/projectfolder/common/Common.h:24:31: error: log4cpp/Category.hh: No such file or directory
/SOMEPATH/projectfolder/common/Common.h:25:35: error: log4cpp/FileAppender.hh: No such file or directory
/SOMEPATH/projectfolder/common/Common.h:26:34: error: log4cpp/BasicLayout.hh: No such file or directory
я только включены заголовки в common.h (#include «log4cpp/xxx.hh»)
добавить, что все сборки и компиляции работает отлично (с CMake затем сделать) без log4cpp
Любая помощь будет принята с благодарностью
Большое спасибо! Я был проиндексирован, делая INCLUDE_DIRECTORIES log4cpp после ADD_SUBDIRECTORY проекта. –