2010-07-29 3 views
1

Файл Makefile выглядит следующим образом:Ошибка компиляции кода C с использованием MinGW в Windows, 7

.PHONY: all clean 

all : backtrace.dll test.exe 

backtrace.dll : backtrace.c 
    gcc -O2 -shared -Wall -o [email protected] $^ -lbfd -liberty -limagehlp --verbose 

test.exe : test.c 
    gcc -g -Wall -o [email protected] $^ 

clean : 
    -del -f backtrace.dll test.exe 

Исходный код backtrace.c это библиотека, которая позволяет получить трассировку стека в C. Подробности на Google Code: http://code.google.com/p/backtrace-mingw/

Когда я с помощью команды:

mingw32-make 

Я получаю сообщение об ошибке:

gcc -O2 -shared -Wall -o backtrace.dll backtrace.c -lbfd -liberty -limagehlp 
C:/MinGW/lib/libbfd.a(libbfd.o):libbfd.c:(.text+0x6ee)锛氬鈥榣ibintl_dgettext 
鈥欐湭瀹氫箟鐨勫紩鐢 
C:/MinGW/lib/libbfd.a(libbfd.o):libbfd.c:(.text+0x740)锛氬鈥榣ibintl_dgettext 
鈥欐湭瀹氫箟鐨勫紩鐢 
C:/MinGW/lib/libbfd.a(libbfd.o):libbfd.c:(.text+0x79b)锛氬鈥榣ibintl_dgettext 
鈥欐湭瀹氫箟鐨勫紩鐢 
C:/MinGW/lib/libbfd.a(libbfd.o):libbfd.c:(.text+0x7d0)锛氬鈥榣ibintl_dgettext 
鈥欐湭瀹氫箟鐨勫紩鐢 
C:/MinGW/lib/libbfd.a(bfd.o):bfd.c:(.text+0x8fd)锛氬鈥榣ibintl_dgettext鈥欐湭 
瀹氫箟鐨勫紩鐢 
C:/MinGW/lib/libbfd.a(bfd.o):bfd.c:(.text+0x964): more undefined references to ` 
libintl_dgettext' follow 
collect2: ld returned 1 exit status 
mingw32-make: *** [backtrace.dll] Error 1 

Как исправить эту ошибку?

ответ

1

Вы должны добавить ссылку на библиотеку libintl, так что ваша ссылка линия становится:

gcc -O2 -shared -Wall -o [email protected] $^ -lbfd -liberty -limagehlp -lintl --verbose