1

我需要log4cpp在我的项目中使用,我想将此库添加为 biicode 块。

我阅读了文档并尝试为 biicode 准备库。

log4cppsourceforge 的 git here获得了来源。 log4cpp已经有了CMakeLists.txt,但是当我尝试在 ubuntu linux 上用 cmake 编译它时,出现了错误: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

所以,我的问题是:

  • 如何以正确的方式准备基于 autotools 的项目成为 biicode 块?
  • 如何运行和./auto-gen.sh命令?./configurebii configure
  • 如何强制 biicode 下载 biicode 块的完整源列表?

提前致谢!

4

0 回答 0