Настройка libpdcurses.a для Pdcurses

Я работаю над программой, в которой я использую функции PDCurses3.5, используя i686-w64-mingw32-gcc.exe. Когда я компилирую программу, я продолжаю получать ошибки, такие как "undefined reference to 'COLS'", "undefined reference to 'lines'", Я проверил это <curses.h> заголовок и пакет библиотеки правильно установлены. Вот моя строка ввода:

> i686-w64-mingw32-gcc.exe set.o read.o elements.o random.o
> -L../standard/test -lplotfit -lplotget -lgfortran -Wl,--subsystem,console -mwindows -o runtime/mingw/result -lm -static -lws2_32  -lpdcurses

И первая часть ошибки:

../standard/bin/mingw/menu.o:menu.c:(.text+0xb): undefined reference to `COLS' 
../standard/bin/mingw/menu.o:menu.c:(.text+0x16): undefined reference to `COLS' 
../standard/bin/mingw/menu.o:menu.c:(.text+0x33): undefined reference to `LINES' 
../standard/bin/mingw/menu.o:menu.c:(.text+0x47): undefined reference to `MOVE' 
../standard/bin/mingw/menu.o:menu.c:(.text+0x74): undefined reference to `initscr'
...

Кажется, что программа не может ссылаться на libpdcurses.a в своем библиотечном файле. Что я делаю неправильно?

1 ответ

Когда вы используете -lpdcursesлинкер ищет libpdcurses.a в определенных заранее определенных местах, плюс те, которые указаны через -L, Но по умолчанию библиотека построена как pdcurses.a, Чтобы связать его, вы можете напрямую указать его местоположение; например:

gcc -oprogname.exe progname.c pdcurses.a

или же

gcc -oprog2.exe prog2.c /pdcurses/win32/pdcurses.a

Кроме того, вы можете переименовать библиотеку в libpdcurses.aи либо скопируйте его в местоположение в существующем пути поиска, либо используйте -L:

gcc -oprogname.exe progname.c -lpdcurses

или же

gcc -oprog2.exe prog2.c -L/pdcurses/win32 -lpdcurses
Другие вопросы по тегам