Мне нужно использовать log4cpp
в моем проекте, и я хотел бы добавить эту библиотеку в качестве блока биокода.
Я прочитал документацию и попытался подготовить библиотеку для биокода.
Я получаю источник log4cpp
от Git Sourceforge здесь.
log4cpp
уже имеет CMakeLists.txt
, но когда я попытался скомпилировать его с помощью cmake на Ubuntu Linux, произошла ошибка: missing file log4cpp/config.h
,
По-видимому, log4cpp
это основанный на autotools проект, который нужно запустить ./autogen.sh
а потом ./configure
подготовить проект для компиляции на Ubuntu Linux. Когда я назвал эту команду, log4cpp/config.h
Файл появился, и я смог скомпилировать проект с помощью cmake.
Затем я добавил этот код в CMakeLists.txt:
if (BIICODE)
include(biicode.cmake)
return()
endif()
и в biicode.cmake я добавил этот код:
# remove tests targets
LIST(REMOVE_ITEM BII_BLOCK_EXES tests_testCategory tests_testConfig tests_testDLL tests_testDailyRollingFileAppender tests_testErrorCollision tests_testFilter tests_testFixedContextCategory tests_testNDC tests_testNDCMain tests_testNTEventLog tests_testPattern tests_testPriority tests_testPropConfig tests_testProperties tests_testPropertyConfig tests_testRollingFileAppender tests_test_convenience tests_testbench tests_testmain)
# remove unnecessary files from lib
LIST(REMOVE_ITEM BII_LIB_SRC
tests/Clock.cpp
tests/Clock.hh
tests/NDCTest.hh
)
ADD_BII_TARGETS()
Теперь я смог построить блок с bii build
, Но когда Я опубликовал этот блок в biicode и попытался использовать его в другом примере проекта, когда я запускаю bii find
, biicode скачать log4cpp, но не все источники (например, RollingFileAppender.cpp не доступен после загрузки).
Мой пример проекта, который использует log4cpp:
#include "log4cpp/Category.hh"
int main()
{
log4cpp::Category::getInstance("application");
return 0;
}
И мне нужно было добавить этот раздел в файл biicode.conf примера проекта:
[includes]
log4cpp/*: halex2005/log4cpp/include
Итак, мои вопросы:
./auto-gen.sh
а также ./configure
на bii configure
команда?Заранее спасибо!
Задача ещё не решена.