11 / 11 / 2
Регистрация: 23.02.2010
Сообщений: 120
1

Как кодить в NetBeans C++ на Linux системе.

27.02.2010, 15:15. Показов 10227. Ответов 11
Метки нет (Все метки)

Поставил себе Linux Ubuntu. Всё бы ничего, да вот нужна очень среда разработки консольных C++ приложений, т.к. на прогера учусь. Раньше всегда кодил на Borland C++ Builder. Запустил netbeans, попытался создать простое приложение типа "Hello world", но не смог Расскажите про отличия библиотек пожалуйста или дайте плз ссылочки, чтобы почитать на эту тему. Просто там conio.h не пашет, операторы ввода/вывода cout/cin не работают(((
Если не трудно, то напишите плз код простейшей программы...

Добавлено через 2 минуты
аа, ещё функция getch() как здесь работает?

Добавлено через 1 час 7 минут
Что заменяет библиотеку windows.h (для подкрашивания текста)??
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.02.2010, 15:15
Ответы с готовыми решениями:

netbeans с++ linux библиотеки
поставила Netbeans 7.2 с расширением для плюсов. Делаю все как обычно, создаю проект, там исходный...

как переключить язык на ноутбуке в системе Linux?
как переключить язык на ноутбуке в системе Linux? а то только по английски пишет а пользоваться...

Cygwin и NetBeans - В системе подходящие компиляторы не найдены
Скачал cygwin и netbeans c++. Теперь пытаюсь настроить. Собственно выполняю эти действия, cygwin...

Netbeans 8.2 OpenGL C++ Linux
Здравствуйте, возник вопрос по поводу установки библиотек glut в netbeans версии 8.2 файлы...

11
Эксперт С++
3210 / 1458 / 73
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
27.02.2010, 16:41 2
Цитата Сообщение от WiDe Посмотреть сообщение
Раньше всегда кодил на Borland C++ Builder
никому не говори об этом.


Цитата Сообщение от WiDe Посмотреть сообщение
Запустил netbeans, попытался создать простое приложение типа "Hello world", но не смог
расскажите в чем проблема?


Цитата Сообщение от WiDe Посмотреть сообщение
Расскажите про отличия библиотек пожалуйста или дайте плз ссылочки, чтобы почитать на эту тему.
с++ это стандарт. это гарантирует полную переносимость кода. так что разницы нет.


Цитата Сообщение от WiDe Посмотреть сообщение
Просто там conio.h не пашет
это чисто вендавский хидер. его не должно быть в стандарте, в принципе.


Цитата Сообщение от WiDe Посмотреть сообщение
операторы ввода/вывода cout/cin не работают
а вот это уже любопытно. подробнее пожалуйста.


Цитата Сообщение от WiDe Посмотреть сообщение
аа, ещё функция getch() как здесь работает?
это нестандартная функция. еще и не должно быть.
но она есть в ncurses(смотрите в пакете libncurses5-dev).


Цитата Сообщение от WiDe Посмотреть сообщение
Что заменяет библиотеку windows.h
ничего


Цитата Сообщение от WiDe Посмотреть сообщение
(для подкрашивания текста)??
поясните.
0
11 / 11 / 2
Регистрация: 23.02.2010
Сообщений: 120
27.02.2010, 17:05  [ТС] 3
Цитата Сообщение от niXman Посмотреть сообщение
никому не говори об этом.

Вот написал:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
 
/*
 * 
 */
int main() {
    printf("Hello\n");
    
    return (EXIT_SUCCESS);
}
Так работает. А если так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
 
/*
 * 
 */
int main() {
    cout<<"Hello\n";
    
    return (EXIT_SUCCESS);
}
В билдере просто подключалась библа
C++
1
#include <iostream.h> //В NetBeans .h писать не надо я так понял....
и можно было спокойно выводить текст
C++
1
cout<<"Hello\n";
. Тут же компилятор ругается... Кстати, помню когда пытался кодить в Visual C++ тоже проблема с cout и cin была...

Цитата Сообщение от niXman Посмотреть сообщение
это нестандартная функция. еще и не должно быть.
но она есть в ncurses(смотрите в пакете libncurses5-dev).
Т.е. надо поставить пакет libncurses5-dev, подключить в программу библиотеку ncurses и функция getch() (и другие типа getchar() и т.п.) будут работать?


Цитата Сообщение от niXman Посмотреть сообщение
поясните.
Ну то есть менять цвет фона, цвет текста и т.п. Мне просто в программе надо будет меню создать, по которому перемещаешься с помощью стрелочек. Выбранная строка как бы подкрашивается цветом. Сам код у меня есть уже, но он под билдер, а там библиотека виндовс...
0
Эксперт С++
3210 / 1458 / 73
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
27.02.2010, 17:24 4
Цитата Сообщение от WiDe Посмотреть сообщение
А если так:
а с каких пор пространство имен std открыто?

Цитата Сообщение от WiDe Посмотреть сообщение
билдере просто подключалась библа
билдер - самый УГ компилятор. не знаю человека(кроме тебя) который бы признавался что кодил на билдере

Цитата Сообщение от WiDe Посмотреть сообщение
Кстати, помню когда пытался кодить в Visual C++ тоже проблема с cout и cin была...
да, микрософтстудия уже лучше. и естественно, "cout <<" работать не должно.

Цитата Сообщение от WiDe Посмотреть сообщение
Т.е. надо поставить пакет libncurses5-dev, подключить в программу библиотеку ncurses и функция getch()
угу

Цитата Сообщение от WiDe Посмотреть сообщение
(и другие типа getchar() и т.п.) будут работать?
хз. смотри документацию. а вообще, за последние 6 лет, не припомню надобности в getch()

Цитата Сообщение от WiDe Посмотреть сообщение
Ну то есть менять цвет фона, цвет текста и т.п.
http://www.developer.com/open/... Tricks.htm
http://www.linuxforums.org/for... nsole.html
а вообще-то, именно для этого и существует ncurses. там даже окошки и менюшки можно создавать
0
11 / 11 / 2
Регистрация: 23.02.2010
Сообщений: 120
27.02.2010, 18:01  [ТС] 5
Цитата Сообщение от niXman Посмотреть сообщение
а с каких пор пространство имен std открыто?
О, спасибо за подсказку, теперь выводит. Надо будет про std почитать, в билдере это не надо было

Цитата Сообщение от niXman Посмотреть сообщение
билдер - самый УГ компилятор
Не спорю=) Просто в универе он у нас стоит, вот и я его себе дома поставил, чтобы проще было=)))))

Цитата Сообщение от niXman Посмотреть сообщение
не припомню надобности в getch()
Опять, в том же билдере, я эту функцию использовал для приостановки работы программы Программа как бы "висит" до тех пор, пока не нажмёшь любую клавишу. А какой оператор или функция для этой цели существует? Систем пауза(что то типа того слышал)?

Цитата Сообщение от niXman Посмотреть сообщение
там даже окошки и менюшки можно создавать
Очень даже хорошо... Спасибо за ссылочки!

Добавлено через 23 минуты
Кстати, про менюшки у вас нет ссылочек?
0
Эксперт С++
3210 / 1458 / 73
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
27.02.2010, 18:29 6
Цитата Сообщение от WiDe Посмотреть сообщение
А какой оператор или функция для этой цели существует? Систем пауза(что то типа того слышал)?
стандартного решения не существует. в лине, консоль в каноническом режиме. его нужно отключить, и с помощью select() ждать ввода символа. долго объяснять...
вот:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <termios.h>
#include <string.h>
#include <sys/ioctl.h>
 
struct TerminalOpt {
    TerminalOpt() {
        termios new_settings;
        tcgetattr(0,&stored_settings);
        new_settings = stored_settings;
        new_settings.c_lflag &= (~ICANON);
        new_settings.c_cc[VTIME] = 0;
        new_settings.c_cc[VMIN] = 1;
        tcsetattr(0,TCSANOW,&new_settings);
    }
    ~TerminalOpt() {
        tcsetattr(0,TCSANOW,&stored_settings);
    }
    termios stored_settings;
};
работает так:
C++
1
2
3
4
5
int main() {
   TerminalOpt term;
   char ch = getc(stdin); // теперь стандартная функция getch() не ждет ентера ;)
   return 0;
}
Цитата Сообщение от WiDe Посмотреть сообщение
Кстати, про менюшки у вас нет ссылочек?
я не пишу гуй. в пакете достаточно документации. так же смотрите man. и про гугл не забывайте.
0
11 / 11 / 2
Регистрация: 23.02.2010
Сообщений: 120
27.02.2010, 18:48  [ТС] 7
На счёт ncurses.h Она не хочет работать в NetBeans... Поставил пакет libncurses5-dev
Код
sudo apt-get install libncurses5-dev
Он установился. Далее беру такой пример программы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <ncurses.h> //подключаем библиотеку ncurses
main(int argc,char *argv[])
{
  // инициализация (должна быть выполнена
  // перед использованием ncurses)
  initscr();
 
  // перемещение курсора в стандартном экране y=10 x=30
  move(10,30);
 
  printw("Hello world !!!"); // вывод строки
  refresh(); // обновить
  getch(); // ждём нажатия символа
 
  endwin(); // завершение работы с ncurses
}
NetBeans не хочет её компилировать, ругаясь:
Код
/usr/bin/make -f nbproject/Makefile-Debug.mk SUBPROJECTS= .build-conf
make[1]: Вход в каталог `/home/wide/NetBeansProjects/Kursovaya'
/usr/bin/make  -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/kursovaya
make[2]: Вход в каталог `/home/wide/NetBeansProjects/Kursovaya'
mkdir -p dist/Debug/GNU-Linux-x86
g++     -o dist/Debug/GNU-Linux-x86/kursovaya build/Debug/GNU-Linux-x86/main.o  
build/Debug/GNU-Linux-x86/main.o: In function `main':
/home/wide/NetBeansProjects/Kursovaya/main.cpp:22: undefined reference to `initscr'
/home/wide/NetBeansProjects/Kursovaya/main.cpp:25: undefined reference to `move'
/home/wide/NetBeansProjects/Kursovaya/main.cpp:27: undefined reference to `printw'
/home/wide/NetBeansProjects/Kursovaya/main.cpp:28: undefined reference to `refresh'
/home/wide/NetBeansProjects/Kursovaya/main.cpp:29: undefined reference to `stdscr'
/home/wide/NetBeansProjects/Kursovaya/main.cpp:29: undefined reference to `wgetch'
/home/wide/NetBeansProjects/Kursovaya/main.cpp:31: undefined reference to `endwin'
collect2: ld returned 1 exit status
make[2]: *** [dist/Debug/GNU-Linux-x86/kursovaya] Ошибка 1
make[2]: Выход из каталога `/home/wide/NetBeansProjects/Kursovaya'
make[1]: *** [.build-conf] Ошибка 2
make[1]: Выход из каталога `/home/wide/NetBeansProjects/Kursovaya'
make: *** [.build-impl] Ошибка 2
BUILD FAILED (exit value 2, total time: 131ms)
Как я понял, библиотека не подключилась... Не знаете почему так?
0
Эксперт С++
3210 / 1458 / 73
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
27.02.2010, 18:52 8
Цитата Сообщение от WiDe Посмотреть сообщение
Как я понял, библиотека не подключилась... Не знаете почему так?
естественно.
а разве в билдере, библиотеки подключаются автоматически?
или вообще, хоть где-то они подключаются автоматически?
0
Эксперт С++
3210 / 1458 / 73
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
27.02.2010, 19:03 9
вот так.
Миниатюры
Как кодить в NetBeans C++ на Linux системе.  
0
11 / 11 / 2
Регистрация: 23.02.2010
Сообщений: 120
27.02.2010, 19:04  [ТС] 10
ну дык я же прописал в начале #include <ncurses.h> ????

Добавлено через 49 секунд
Сейчас попробую....
0
Эксперт С++
3210 / 1458 / 73
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
27.02.2010, 19:05 11
Цитата Сообщение от WiDe Посмотреть сообщение
ну дык я же прописал в начале #include <ncurses.h> ????
это не библиотека! это только лишь заголовочный файл. т.е. файл деклараций.
0
11 / 11 / 2
Регистрация: 23.02.2010
Сообщений: 120
27.02.2010, 20:35  [ТС] 12
Спасибо! Всё получилось! Сейчас буду портировать моё приложение на линукс=) Если возникнут трудности, я ещё тут отпишусь....

Добавлено через 54 минуты
А какая функция аналогична функции clrscr() ??? Только clear() и всё???

Добавлено через 8 минут
И обработка нажатий клавишь клавиатуры тут по другому работает чтоли? ))
Раньше на меню был такой код:
C++
1
2
3
4
5
6
7
code=getch();
                if (code==0)
                        {code=getch();
                        if (code==80) key++;
                        if (code==72) key--;
                        }
           }while(code!=13);
Ну это только фрагмент, который считывал нажатие стрелочки вверх или вниз и выполнял необходимые действия. И цикл был до тех пор, пока не нажат энтер. в нетбинсе что-то не робит, зацикливается....
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.02.2010, 20:35
Помогаю со студенческими работами здесь

Не запускается NetBeans [Linux, Ubuntu]
Всем привет, у меня не запускается NetBeans на ОС Ubuntu В консоле пишет ошибку:...

C++ Linux - netbeans ошибки компиляции
Добрый день. Такая проблема, может кто сталкивался. А то что у же только не делала, только хуже...

Netbeans + OpenCV + linux + java
Народ! я собрал исходники OpenCV получил файл opencv-300.jar (весит 433,8 кб) Подключаю его к...

Установка netbeans под Linux(Debian)
Установил netbeans, под OS Linux(Debian), но не могу запустить проект. Сразу уточню что ставил...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru