メインプログラムが作成中のライブラリ内の関数を使用できるように、ライブラリを C プログラムにリンクしようとしていますが、エラーが発生します。
これは私のライブラリ コードの一部です (このファイルを lib.c と呼びます):
#include <bfd.h>
#include <stdio.h>
static void doDump ( bfd *abfd )
{
printf (_("\n%s: file format %s\n"), bfd_get_filename (abfd), abfd->xvec->name);
doHeaders ( abfd );
}
これが私のメイン プログラムです (このファイルを main.c と呼びます):
#include "bfd.h"
static void getFile ( char *filename, char *target )
{
bfd *file;
file = bfd_openr (filename, target);
doDump (file);
bfd_close (file);
}
int main (int argc, char **argv)
{
char *target = NULL;
bfd_init ();
getFile ("a.out", target);
}
これらは、ライブラリをリンクするために実行するコマンドです。
cc -Wall -c lib.c
ar -cvq libdata.a lib.o
cc -o mainprog main.c lib.a -lbfd
ただし、次のエラーが発生します。
doDump への未定義の参照
次の行を指しています:
doDump (ファイル);
私は何を間違っていますか?
ありがとう