1

プロジェクトで使用する必要がありlog4cpp、このライブラリを biicode ブロックとして追加したいと考えています。

ドキュメントを読み、ライブラリを biicode 用に準備しようとしました。

sourceforge の git herelog4cppからソースを取得します。 はすでに持っているのですが、ubuntu Linux で cmake でコンパイルしようとすると、エラーが発生しました: .log4cppCMakeLists.txtmissing file log4cpp/config.h

どうやら、log4cppautotools ベースのプロジェクトであり、実行する必要が./autogen.shあり、./configureUbuntu 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