В настоящее время я пытаюсь скомпилировать и связать 32-битное приложение на моем 64-битном Debian, но во время компоновки оно не получается.
Команда, которую я использую (в моем Makefile) для компиляции:
gcc -Os -m32 -Wall -g -c $< -o $@
Кажется, это работает.
Затем я связываюсь с помощью следующей команды:
gcc -m32 -lcurses $^ -o $@
Сбой и выдача следующих ошибок:
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libcurses.so when searching for -lcurses
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libcurses.a when searching for -lcurses
/usr/bin/ld: skipping incompatible /usr/lib/libcurses.so when searching for -lcurses
/usr/bin/ld: skipping incompatible /usr/lib/libcurses.a when searching for -lcurses
/usr/bin/ld: cannot find -lcurses
collect2: ld returned 1 exit status
То, что я пробовал до сих пор (обычные решения, которые я нашел в других местах в Интернете):
- установка
gcc-multilib
- установка
lib32ncurses5
и lib32ncurses6dev
- добавление опции
-L/usr/lib32
к команде ссылки
К сожалению, ничего из этого не сработало.
У меня заканчиваются идеи. В крайнем случае я бы использовал 32-битную систему, но я бы хотел этого избежать, если это возможно.