Страница 1 из 2
Программирование
Добавлено: 2010-01-14 21:44:42
netvisdom
Ребят, подскажите - с чего начать изучение программирования под FreeBSD? Я знаю С/С++, но мой опыт все больше под мелкософтовские системы. Под юниксы не писал. Изучаю FreeBSD, хочется под нее переписать один очень необходимый мне софт (обсчет динамических систем), но не знаю с чего начать.
И еще: есть ли среды разработки, чтобы и под windows и под freebsd можно было бы работать с одним и тем же проектом, и компилить его под Freebsd? Кросс-компайлеры вроде называются, но мне именно среда разработки интересует.
Спасибо.
Re: Программирование
Добавлено: 2010-01-14 22:43:44
Soldier
netvisdom писал(а): Я знаю С/С++, но мой опыт все больше под мелкософтовские системы.
Под ДОС надо было программить, а не под АПИ. printf'ы и т.п. Из всего АПИ тут только dialog

.
netvisdom писал(а):но не знаю с чего начать.
Сначала я бы сделал обзор заголовочных файлов, доступных в данной ОС, а потом, те которые не знаю, пытался бы понять.
netvisdom писал(а):И еще: есть ли среды разработки, чтобы и под windows и под freebsd можно было бы работать с одним и тем же проектом
Qt - кросплатформенное бесплатное IDE, ориентировано для Си-программеров. Ну или ява.

. Дело ваше.
Если уж совсем туго с программированием под консоль, то перл в зубы и учите его.
Re: Программирование
Добавлено: 2010-01-14 23:01:51
netvisdom
А нету сред для компилятора С/С++ так, чтобы и на Windows и на freeBsd? Я тут нашел Eclipse, сейчас скачиваю... Не знаю то ли это...
Re: Программирование
Добавлено: 2010-01-15 0:37:20
xelplogoog
дык QT
Re: Программирование
Добавлено: 2010-01-15 0:57:01
netvisdom
Нее, Qt - это ясно... я под нее и для винды пишу, это да. А без QT в чем приложения разрабатываются для фряхи?
Простите за глупые вопросы - ткните где почитать если что - я даже не знаю что по делу, а что нет.
Re: Программирование
Добавлено: 2010-01-15 9:20:50
hizel
теми же средствами что и в линупсе, либ-ы примерно одни и те же
писать спешал фо фреебсд дурацкая идея, пишите кроспланформенно
Re: Программирование
Добавлено: 2010-01-15 9:23:01
Гость
без QT в чем приложения разрабатываются для фряхи?
Re: Программирование
Добавлено: 2010-01-15 12:00:45
Soldier
А еще мона ee, mcedit.
Кстати, используя последний, в начале сохраняем файл как *.c или *.cpp, а потом открываем вновь и получаем текстовый редактор с подсветкой синтаксиса.
hizel писал(а):теми же средствами что и в линупсе, либ-ы примерно одни и те жеписать спешал фо фреебсд дурацкая идея, пишите кроспланформенно
Только разница в расположении файлов, но она не существенна.
netvisdom писал(а):А без QT в чем приложения разрабатываются для фряхи?
Perl, shell, asm, gcc, php + какой-нить текстовый редактор.
Выше были описаны редакторы. Если не нравится - можно вводить данные построчно, скажем командой echo:
. А если серьезно, то я не понимаю, что вам мешает писать в фре?
Вся разница только в том, что компиляция происходит отдельно от редактора и из командной строки.
Пошарьте в сорсах ee или mcedit и допишите её на компиляцию открытого файла (имхо оно не нужно).
Re: Программирование
Добавлено: 2010-01-15 15:57:19
FreeBSP
по идее консольные виндовые проги могут и на фре запуститься особенно, если тока С99 используется и не пользуется винапи или прочая лосося от мелкомягких
тобишь попробуй взять любимую студию 2008 в руки, консольный проект и впуть
пока однофайловые проекты делай. компилять так
либо
потом расскажу как несколько файлов собирать
да, это я про консоль. пд графику( ни разу не работал в ней на чистой фре) по другому - там на гтк и кутэ
Re: Программирование
Добавлено: 2010-01-15 17:57:46
Soldier
FreeBSP писал(а):если тока С99 используется и не пользуется
Не работает. Под досом была хорошая штука getch(); функция, которой можно было сделать задержку в конце проги и которо можно было получить ASCII код, но в фре/лине её или извратили или что. Вобщем она не работает. (была в conio.h). Так же и ряд других функций из этой библиотеки.
Re: Программирование
Добавлено: 2010-01-15 18:40:31
hizel
conio.h не нужен

прозреваю непортатабельность
Re: Программирование
Добавлено: 2010-01-15 18:50:18
Soldier
hizel писал(а):conio.h не нужен
прозреваю непортатабельность
Эт с чего бы?

как тогда можно расцветить текст?

в нем же была функция cprntf(c,<other>), так же была функция gotoxy(xy), которая позволяла печатать текст в определеное место в текстовом поле. и т.п. не говоря уже о clrscr();

Re: Программирование
Добавлено: 2010-01-15 18:58:15
hizel
ncurses в лапы
Re: Программирование
Добавлено: 2010-01-15 18:59:45
FreeBSP
Код: Выделить всё
#include <termios.h>
#include <unistd.h>
using namespace std;
int getch()
{
struct termios oldt, newt;
int ch;
tcgetattr(STDIN_FILENO, &oldt);
newt = oldt;
newt.c_lflag &= ~(ICANON | ECHO);
tcsetattr(STDIN_FILENO, TCSANOW, &newt);
ch = getchar();
tcsetattr(STDIN_FILENO, TCSANOW, &oldt);
return ch;
}
вот те гетч
а еще шкерь курсы(ncurses) - там и гетча аналог и клрскр и с готоху и много еще чего есть
Re: Программирование
Добавлено: 2010-01-15 19:04:04
Soldier
hizel писал(а):ncurses в лапы
эт заголовочный файл или что?
Re: Программирование
Добавлено: 2010-01-15 19:11:20
FreeBSP
библиотека это
/usr/ports/devel/ncurses
Re: Программирование
Добавлено: 2010-01-15 19:12:17
hizel
google has you, luke
Re: Программирование
Добавлено: 2010-01-15 23:15:33
Soldier
спасибо за ответ.
Re: Программирование
Добавлено: 2010-01-18 2:06:56
netvisdom
Ребят, а формат исполняемых файлов для Линукс и фряхи одинаков или нет? То есть можно программу от фряхи без компиляции на линуксе запустить и наоборот, или нет?
Проверить негде, посему решил спросить. спасибо!

Re: Программирование
Добавлено: 2010-01-18 2:41:08
FreeBSP
наоборот можно при установке пакета бинарной совместимости на фрю(или это уже не нажо...
а напрямую - врядли
Re: Программирование
Добавлено: 2010-01-18 9:53:23
Soldier
netvisdom писал(а):Ребят, а формат исполняемых файлов для Линукс и фряхи одинаков или нет? То есть можно программу от фряхи без компиляции на линуксе запустить и наоборот, или нет? Проверить негде, посему решил спросить. спасибо!
ИМХО - одинаков. Т.к. используется эльф.
FreeBSP писал(а):наоборот можно при установке пакета бинарной совместимости на фрю
Она вроде для установки простых лунпсовых программ - типа линукс во фре.
В линухе же ничего из стандартного не пишется в /usr/local/local/etc - для этого по сути он и сделан.
Re: Программирование
Добавлено: 2010-01-18 11:26:27
FreeBSP
проверь - узнаешь
разница как минимум в либах и в их расположении. как максимум - в разных ельфах, так как те же эльфы используют системные вызовы ядра как минимум для порождения процесса и для его киляния
насколько я помню, есть только два способа породить процес - это fork() и загрузка бинарника в память и передача ему управления - так грузится ядро
поставишь бинарную совместимость на фрю - сможешь на фре грузить линовые программы(тоетсь это означает что запуститься бинарник. если он сразу упадет из за отсутствия либ это другой разговор
поставишь что то типа linux_base - получишь что то типа линового комплекта либ на фрю
Re: Программирование
Добавлено: 2010-01-18 21:15:54
Soldier
FreeBSP писал(а):поставишь что то типа linux_base - получишь что то типа линового комплекта либ на фрю
И не только либ, но и всх остальных бинарников и т.п.
Re: Программирование
Добавлено: 2010-01-24 13:54:27
Soldier
всем привет
я по поведу ncurses.
Установил из портов ncurses, пишу прогу:
#include <ncurses.h>
main (int argc, char *argv)
{
char c;
initscr();
mvaddstr(20,50,"hello world");
mvaddstr(14,10,"Press a letter ==>");
c=getch();
endwin();
printf("\n\nyou perss %c",c);
}
А она мне гадит в консоль при компиляции:
Код: Выделить всё
/var/tmp//cc3Sjp9t.o(.text+0x12): In function `main':
: undefined reference to `initscr'
/var/tmp//cc3Sjp9t.o(.text+0x17): In function `main':
: undefined reference to `stdscr'
/var/tmp//cc3Sjp9t.o(.text+0x2f): In function `main':
: undefined reference to `wmove'
/var/tmp//cc3Sjp9t.o(.text+0x39): In function `main':
: undefined reference to `stdscr'
/var/tmp//cc3Sjp9t.o(.text+0x51): In function `main':
: undefined reference to `waddnstr'
/var/tmp//cc3Sjp9t.o(.text+0x56): In function `main':
: undefined reference to `stdscr'
/var/tmp//cc3Sjp9t.o(.text+0x6e): In function `main':
: undefined reference to `wmove'
/var/tmp//cc3Sjp9t.o(.text+0x78): In function `main':
: undefined reference to `stdscr'
/var/tmp//cc3Sjp9t.o(.text+0x90): In function `main':
: undefined reference to `waddnstr'
/var/tmp//cc3Sjp9t.o(.text+0x95): In function `main':
: undefined reference to `stdscr'
/var/tmp//cc3Sjp9t.o(.text+0x9d): In function `main':
: undefined reference to `wgetch'
/var/tmp//cc3Sjp9t.o(.text+0xa5): In function `main':
: undefined reference to `endwin'
объясните мне, что ей надо и как это пофиксить?
Заранее благодарен.
Re: Программирование
Добавлено: 2010-01-24 14:22:58
hizel
добавьте -lncurses. ваш К.О.