編集:もちろん、完全な重複は、質問をする特定の答えを得るためにstackoverflowの全体のポイントではない、私にリンクした '答え': A. C++のため、部分的に理解できない B. Wikiの記事のように読んでいますが、それは大規模であり、少しでも具体的ではなく、少なくとも少し役立ちます。未定義の参照エラー
ダウンロードしたコードライブラリ(libftdi)のexamplesフォルダからサンプルコードをコピーしました。プロジェクトを作成する場所に、実行時に未定義の参照がたくさんありますが、元の場所で正常に動作します。
メインファイル:
#include <stdio.h>
#include <stdlib.h>
#include <ftdi.h>
int main(void)
{
int ret, i;
struct ftdi_context *ftdi;
struct ftdi_device_list *devlist, *curdev;
char manufacturer[128], description[128];
int retval = EXIT_SUCCESS;
if ((ftdi = ftdi_new()) == 0)
{
fprintf(stderr, "ftdi_new failed\n");
return EXIT_FAILURE;
}
if ((ret = ftdi_usb_find_all(ftdi, &devlist, 0, 0)) < 0)
{
fprintf(stderr, "ftdi_usb_find_all failed: %d (%s)\n", ret, ftdi_get_error_string(ftdi));
retval = EXIT_FAILURE;
goto do_deinit;
}
printf("Number of FTDI devices found: %d\n", ret);
i = 0;
for (curdev = devlist; curdev != NULL; i++)
{
printf("Checking device: %d\n", i);
if ((ret = ftdi_usb_get_strings(ftdi, curdev->dev, manufacturer, 128, description, 128, NULL, 0)) < 0)
{
fprintf(stderr, "ftdi_usb_get_strings failed: %d (%s)\n", ret, ftdi_get_error_string(ftdi));
retval = EXIT_FAILURE;
goto done;
}
printf("Manufacturer: %s, Description: %s\n\n", manufacturer, description);
curdev = curdev->next;
}
done:
ftdi_list_free(&devlist);
do_deinit:
ftdi_free(ftdi);
return retval;
}
エラー:
[email protected] ~/Documents/BitBang $ make
make bitbang
make[1]: Entering directory '/home/ollieb/Documents/BitBang'
cc -Wall -g -I/usr/include/libftdi1/ bitbang.c -o bitbang
/tmp/cc20kltT.o: In function `main':
/home/ollieb/Documents/BitBang/bitbang.c:13: undefined reference to `ftdi_new'
/home/ollieb/Documents/BitBang/bitbang.c:19: undefined reference to `ftdi_usb_find_all'
/home/ollieb/Documents/BitBang/bitbang.c:21: undefined reference to `ftdi_get_error_string'
/home/ollieb/Documents/BitBang/bitbang.c:32: undefined reference to `ftdi_usb_get_strings'
/home/ollieb/Documents/BitBang/bitbang.c:34: undefined reference to `ftdi_get_error_string'
/home/ollieb/Documents/BitBang/bitbang.c:42: undefined reference to `ftdi_list_free'
/home/ollieb/Documents/BitBang/bitbang.c:44: undefined reference to `ftdi_free'
collect2: error: ld returned 1 exit status
<builtin>: recipe for target 'bitbang' failed
make[1]: *** [bitbang] Error 1
make[1]: Leaving directory '/home/ollieb/Documents/BitBang'
Makefile:4: recipe for target 'all' failed
make: *** [all] Error 2
メイクファイル:
CFLAGS=-Wall -g -I/usr/include/libftdi1/
all:
make bitbang
clean:
rm bitbang
私はドン」ヨーヨーの指示を見ないURコード**ランニング**。 **リンカー**のエラーが発生したときに**ビルドします。 – Olaf
元の場所でコンパイルして正常に動作していますが、追加していないので表示されません。これは開発者の一例です。 – ollie299792458