2012-05-14 132 views
1

我想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/ 

然后当我运行make我有如下因素的错误:

/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头(#包括“log4cpp/xxx.hh”)

我补充一点,所有的构建和编译精品(通过CMake然后进行),而log4cpp

任何帮助,将不胜感激

回答

2

如果您要添加的公用目录与它自己的CMakeLists.txt一个子目录,你需要调用如果您希望已包含的目录传递下来,请在致电ADD_SUBDIRECTORY之前拨打电话号码。

+0

非常感谢!我在工程的所有ADD_SUBDIRECTORY之后执行了log4cpp的INCLUDE_DIRECTORIES。 –