Форум программистов, компьютерный форум CyberForum.ru

C++, CodeBlocks и ncurces - C++

Восстановить пароль Регистрация
 
[WRG]
 Аватар для [WRG]
50 / 50 / 9
Регистрация: 20.11.2011
Сообщений: 243
Записей в блоге: 1
25.09.2013, 11:50     C++, CodeBlocks и ncurces #1
Пытаюсь скомпилировать простенький пример с ncurces
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <curses.h>
 
int main(int argc, char **argv)
{
    initscr();
    move(5,15);
    printw("test message");
    endwin();
}
libncurses5-dev установлен, компилирую с -lncurses
есть ошибки
Код
undefined reference to `initscr'
undefined reference to `move'
undefined reference to `printw'
undefined reference to `endwin'
Как вобще правильно линковать библиотеки, на примере ncurses?
Использую codeblocks в качестве IDE, никак не могу разобраться с этим вопросом. Флаг указал в опциях сборки. Там еще есть вкладка Linker settings, может там что-то указать надо?
Миниатюры
C++, CodeBlocks и ncurces  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2013, 11:50     C++, CodeBlocks и ncurces
Посмотрите здесь:

Codeblocks! C++
codeblocks C++
Codeblocks C++
C++ codeblocks
CodeBlocks C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rublag
52 / 52 / 4
Регистрация: 06.02.2013
Сообщений: 156
25.09.2013, 13:16     C++, CodeBlocks и ncurces #2
как запускается gcc?
[WRG]
 Аватар для [WRG]
50 / 50 / 9
Регистрация: 20.11.2011
Сообщений: 243
Записей в блоге: 1
25.09.2013, 13:46  [ТС]     C++, CodeBlocks и ncurces #3
Спасибо, но уже сам разобрался, не туда прописал -lncurses
[WRG]
 Аватар для [WRG]
50 / 50 / 9
Регистрация: 20.11.2011
Сообщений: 243
Записей в блоге: 1
25.09.2013, 13:47  [ТС]     C++, CodeBlocks и ncurces #4
Надо вот так, может пригодится кому.
Миниатюры
C++, CodeBlocks и ncurces  
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.09.2013, 13:58     C++, CodeBlocks и ncurces #5
Цитата Сообщение от [WRG] Посмотреть сообщение
не туда прописал -lncurses
Не туда - это куда?
[WRG]
 Аватар для [WRG]
50 / 50 / 9
Регистрация: 20.11.2011
Сообщений: 243
Записей в блоге: 1
25.09.2013, 14:25  [ТС]     C++, CodeBlocks и ncurces #6
Сперва прописал в Compiler settings -> Other options. Оказалось надо было в Linker settings.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.09.2013, 14:33     C++, CodeBlocks и ncurces #7
Цитата Сообщение от [WRG] Посмотреть сообщение
Сперва прописал в Compiler settings -> Other options. Оказалось надо было в Linker settings.
А через Add (как на скрине в 1 посте), прописать путь к библиотеке, в Link libraries, не пробовали? Для большинства библиотек этого достаточно (хотя есть и исключения, напимер, glut), и тогда не нужно прописывать ничего в Other linker options.
[WRG]
 Аватар для [WRG]
50 / 50 / 9
Регистрация: 20.11.2011
Сообщений: 243
Записей в блоге: 1
25.09.2013, 14:35  [ТС]     C++, CodeBlocks и ncurces #8
Пробовал, точно так же работает, но в моём случае -lncurses прописать быстрее, чем путь.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
25.09.2013, 14:41     C++, CodeBlocks и ncurces #9
Цитата Сообщение от [WRG] Посмотреть сообщение
Пробовал, точно так же работает, но в моём случае -lncurses прописать быстрее, чем путь.
Понятно. Но это, наверное, работает, когда библиотека в папке проекта (а может и нет, не проверял). Впрочем, кому как наравится.
[WRG]
 Аватар для [WRG]
50 / 50 / 9
Регистрация: 20.11.2011
Сообщений: 243
Записей в блоге: 1
25.09.2013, 15:30  [ТС]     C++, CodeBlocks и ncurces #10
Возникла новая проблема. Почему-то не дебажатся программы c ncurses. GDB просто вылетает, при попытке перейти на следующую строку.
Вот прогрессбар, вылетает при переходе с initscr() к циклу.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <ncurses.h>
#include <cstring>
 
void showProgress(unsigned short percent);
 
int main(int argc, char **argv)
{
    initscr();
    for (int i = 0; i < 100; i++)
    {
        showProgress(i);
        getch();
    }
 
    endwin();
    return 0;
}
 
void showProgress(unsigned short percent)
{
    char *progressBar = new char [40];
    *progressBar = '\0';
    strcpy(progressBar, "[");
    int i;
    for (i = 0; i < percent / 5; i++)
    {
        strcat(progressBar, "|");
    }
    for (;i < 20; i++)
    {
        strcat(progressBar, " ");
    }
    strcat(progressBar, "]  ");
    char *tmpBuf = new char [10];
    sprintf(tmpBuf, "%i%%", (int)percent);
    strcat(progressBar, tmpBuf);
    move(2, 0);
    printw("%s\n", progressBar);
    refresh();
    delete [] tmpBuf;
    delete [] progressBar;
}
rublag
52 / 52 / 4
Регистрация: 06.02.2013
Сообщений: 156
25.09.2013, 17:16     C++, CodeBlocks и ncurces #11
Переменная окружения TERM установлена?
[WRG]
 Аватар для [WRG]
50 / 50 / 9
Регистрация: 20.11.2011
Сообщений: 243
Записей в блоге: 1
25.09.2013, 17:17  [ТС]     C++, CodeBlocks и ncurces #12
как можно посмотреть?
[WRG]
 Аватар для [WRG]
50 / 50 / 9
Регистрация: 20.11.2011
Сообщений: 243
Записей в блоге: 1
25.09.2013, 17:21  [ТС]     C++, CodeBlocks и ncurces #13
это случайно не вот это?
Миниатюры
C++, CodeBlocks и ncurces  
rublag
52 / 52 / 4
Регистрация: 06.02.2013
Сообщений: 156
25.09.2013, 17:21     C++, CodeBlocks и ncurces #14
код взял со stackoverflow
C++
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
int main(int argc, char **argv, char** envp)
{
  char** env;
  for (env = envp; *env != 0; env++)
  {
    char* thisEnv = *env;
    printf("%s\n", thisEnv);
  }
}
[WRG]
 Аватар для [WRG]
50 / 50 / 9
Регистрация: 20.11.2011
Сообщений: 243
Записей в блоге: 1
25.09.2013, 17:36  [ТС]     C++, CodeBlocks и ncurces #15
В выхлопе есть такое.
TERM=xterm

Добавлено через 12 минут
Нашел в репах еще libncurses5-dbg, установил, ничего не изменилось. Думал сначала в этом дело. libncurses5-dev установлен.
rublag
52 / 52 / 4
Регистрация: 06.02.2013
Сообщений: 156
25.09.2013, 17:38     C++, CodeBlocks и ncurces #16
я использую qtcreator, а не codeblocks, у меня с gdb всё отлаживается, похоже баг в codeblocks

Добавлено через 55 секунд
установил codeblocks 12.11 32 бита, создал консольный проект, отладка работает
[WRG]
 Аватар для [WRG]
50 / 50 / 9
Регистрация: 20.11.2011
Сообщений: 243
Записей в блоге: 1
25.09.2013, 17:45  [ТС]     C++, CodeBlocks и ncurces #17
У меня он тоже есть, попробую. Только что пробовал в CodeLite, точно такие же симптомы.

Добавлено через 1 минуту
кстати компилятор и отладчик из репозиториев unstable, может в этом дело?
Код
bernhardt@NP355V4C:~$ gdb --version
GNU gdb (GDB) 7.6 (Debian 7.6-5)
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.

bernhardt@NP355V4C:~$ g++ --version
g++ (Debian 4.7.2-5) 4.7.2
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Добавлено через 4 минуты
Создал в QtCreator простой проект с qmake, но без qt. Как в нем библиотеку ncurses линковать?
rublag
52 / 52 / 4
Регистрация: 06.02.2013
Сообщений: 156
25.09.2013, 18:10     C++, CodeBlocks и ncurces #18
в .pro добавить:
Код
QMAKE_LFLAGS += -lncurses
Добавлено через 2 минуты
у меня g++ версий 4.8.1 и 4.7.3, но я думаю, что дело не в этом

Добавлено через 10 минут
А если запустить ide из консоли, будет работать(увидел решение на одном форуме)?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.09.2013, 18:26     C++, CodeBlocks и ncurces
Еще ссылки по теме:

C++ Codeblocks > C++
Code::Bloks C++, В чем разница "codeblocks-12.11-setup.exe" и "codeblocks-12.11mingw-setup.exe" C++
C++ CodeBlocks 13.12 vs 10.05

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
[WRG]
 Аватар для [WRG]
50 / 50 / 9
Регистрация: 20.11.2011
Сообщений: 243
Записей в блоге: 1
25.09.2013, 18:26  [ТС]     C++, CodeBlocks и ncurces #19
Да, если из консоли запустить codeblocks, то работает!
Yandex
Объявления
25.09.2013, 18:26     C++, CodeBlocks и ncurces
Ответ Создать тему
Опции темы

Текущее время: 08:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru