Проблемы с ссылками в Rust: неопределенная ссылка на `initscr'C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Проблемы с ссылками в Rust: неопределенная ссылка на `initscr'

Сообщение Anonymous »

Я работаю над псевдо-ОС с использованием Rust и C++, пытаюсь определить нажатие клавиш с помощью C++ с помощью ncurses (я знаю, что для Rust существует аналогичный крейт), и в build.rs у меня есть следующее код

Код: Выделить всё

cc::Build::new()
.cpp(true)
.file("src/button.cpp")
.flag("-lncurses") // Link with ncurses library
.compile("button.a");
Но в момент запуска груза у меня возникают следующие ошибки:

Код: Выделить всё

> undefined reference to `initscr'.
> undefined reference to `cbreak
> undefined reference to `noecho
> undefined reference to `stdscr'
> undefined reference to `keypad
> undefined reference to `stdscr'
> undefined reference to `wgetch'
> undefined reference to `printw'
Код, в котором возникает ошибка, следующий:

Код: Выделить всё

// This code is provided by ChatGPT for testing purposes

#include 
#include 

using namespace std;

extern "C" {

void button() {
initscr();
cbreak();
noecho();
keypad(stdscr, TRUE);
int key;
while (true) {
key = wgetch(stdscr);
if (key == KEY_DOWN)
printw("Arrow down");
else if (key == KEY_UP)
printw("Arrow up");
else if (key == KEY_LEFT)
printw("Arrow left");
else if (key == KEY_RIGHT)
printw("Arrow right");
else if (key == '\n')
printw("Return");
else if (key == 3)
break;
else if (key < 256)
printw("%c", key);
else
printw("Special character");
printw("\n");
refresh();
}
endwin();
}
}
Я стараюсь не получать эти ошибки при зарядке

Подробнее здесь: https://stackoverflow.com/questions/784 ... to-initscr
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»