Ошибка компиляции кода C с использованием MinGW в Windows 7 - PullRequest
1 голос
/ 29 июля 2010

Makefile выглядит следующим образом:

.PHONY: all clean

all : backtrace.dll test.exe

backtrace.dll : backtrace.c
    gcc -O2 -shared -Wall -o $@ $^ -lbfd -liberty -limagehlp --verbose

test.exe : test.c
    gcc -g -Wall -o $@ $^

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

Исходный код backtrace.c - это библиотека, которая позволяет получить трассировку стека в C. Подробная информация о коде Google: 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 Ответ

1 голос
/ 20 августа 2010

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

gcc -O2 -shared -Wall -o $@ $^ -lbfd -liberty -limagehlp -lintl --verbose
...