2015-05-17 3 views
0

У меня есть этот код С:неопределенная ссылка на `bfd_get_section_by_name»

asection *s; 
s = bfd_get_section_by_name(abfd, "__exported_do_funs"); 

Который дает мне ошибку компиляции:

file.o: In function `do_listdos': 
file.c:9500: undefined reference to `bfd_get_section_by_name' 
collect2: ld returned 1 exit status 

Так что я нашел, что это является частью Binutils я считаю, и его установили:

Installed Packages 
binutils.i386      2.17.50.0.6-26.el5  installed 
binutils-devel.i386    2.17.50.0.6-26.el5  installed 

Но все равно получите ту же ошибку компиляции. Я что-то упускаю?

Я бегу: gcc version 4.1.2 20080704 (Red Hat 4.1.2-51)

Это в моем файле заголовка:

#include <bfd.h> /* Eizneckam's BFD Code */ 

ССАГПЗ синтаксис бег:

/usr/bin/gcc -c -g -g3 -Wall -DREQUESTS -DSMAUG14 -DTIMEFORMAT -DREGEX file.c 

/usr/bin/gcc -lcrypt -lz -lbfd -liberty -lm -lmysqlclient -lnsl -L/usr/lib/mysql -I/usr/include/mysql/ -o 

Либерал находится в /usr/lib/libbfd.a

+0

Вы должны быть в том числе файл .h, который определяет эту функцию ... – ericbn

+0

возможный дубликат [Что такое неопределенная ссылка/неразрешенный внешний символ ошибка и как это исправить?] (http://stackoverflow.com/questions/12573816/what-is-an-undefined-reference-unresolved-external-symbol-error-and-how-do-i-fix) – ericbn

+0

@ericbn Я понимаю концепцию, и у меня есть правильная настройка из того, что я понимаю. Я не уверен, почему происходит ошибка. – Zeno

ответ

0

Это означает, что он не нашел реализацию этой функции.

В вашем случае:

To use the library, include bfd.h and link with libbfd.a .

Ссылка: http://www.delorie.com/gnu/docs/binutils/bfd_3.html

+0

Является ли '-lbfd' правильным gcc-переключателем? Это то, что уже существует в gcc args – Zeno

+0

Да, это включает в себя libbfd – ericbn

+0

У вас все еще такая же ошибка. Вот полный журнал компиляции: http://biyg.org/maketxt.txt – Zeno

Смежные вопросы