0

私は大きなコードに取り組んでいます。jam コマンドを使用してコード ベースをコンパイルすると、コード ベースに新しく追加されたヘッダー ファイルの「some_function」への参照が未定義であるという多くのエラーが発生します。このヘッダー ファイルには、他のすべての関連するヘッダー ファイルが含まれます。コードベースをコンパイルする前に、jam ファイルを変更する必要がありますか?

bundlemgr_distrib_im.c:

#include "bundlemgr_distrib_config.h"
.
.
function{
.
.
retcode = bmd_cfg_init_active(bmd_im_evh);
.
.
}

bundlemgr_distrib_config.h:

cerrno bmd_cfg_init_active(event_mgr_p evh); //declaration

bundlemgr_distrib_config.c

#include "bundlemgr_distrib_config.h"
.
.
cerrno bmd_cfg_init_active(event_mgr_p evh)
{
//definition
}

ビルドログ:

...failed Link bundle/bundlemgr/test/obj-x86/bm_ut_distrib_attr ...
...skipped <installed!rp>bm_ut_distrib_attr for lack of <bundle!bundlemgr!test!obj-x86>bm_ut_distrib_attr...
.
.
bugfix/./bundle/bundlemgr/distrib/src/bundlemgr_distrib_im.c:269: undefined reference to `bmd_cfg_init_active'

別のエラー:

bundlemgr_distrib_acc_private.h (新規追加ファイル)

#include "bundlemgr_distrib_db_api.h"
#include "bundlemgr_distrib_db_private.h"
.
.
function{
.
.
rc = bmd_db_bdl_change_ifh(entry, ifhandle);
.
.
}

bundlemgr_distrib_db_private.h

cerrno bmd_db_bdl_change_ifh(bmd_db_bdl_h_type  entry,
                          ifhtype            ifhandle); //declaration

bundlemgr_distrib_db_api.c

#include "bundlemgr_distrib_db_private.h"
.
.
cerrno  
bmd_db_bdl_change_ifh (bmd_db_bdl_type *entry,                                                                                                                                                                                          
                    ifhtype          ifhandle)
{
//definition
}

ビルドログ:

...failed Link bundle/bundlemgr/test/obj-x86/bm_ut_distrib_attr ...
...skipped <installed!rp>bm_ut_distrib_attr for lack of <bundle!bundlemgr!test!obj-x86>bm_ut_distrib_attr...
Link bundle/bundlemgr/test/obj-x86/bm_ut_distrib_mbr_info
bundle/bundlemgr/test/obj-x86/bundlemgr_distrib_test_errdis_owner.o: In function `bmd_acc_bdl_set_ifhandle':
/nobackup/pzambad/ci-521-bugfix/./bundle/bundlemgr/distrib/src/bundlemgr_distrib_acc_private.h:3618: undefined reference to `bmd_db_bdl_change_ifh'
4

1 に答える 1

0

これらのヘッダーに対応するライブラリ ファイルの場所をリンカーに伝える必要があります。多くの場合、必要なライブラリを含む /lib ディレクトリが存在します。Gnu ツールチェーンを使用して-l、特定のライブラリを含め-Lたり、ライブラリ パスを追加したりします。

于 2014-05-15T22:04:55.650 に答える