С самого начала (Помогите мигрировать на Linux)

Модератор: Модераторы разделов

Werhovcew
Сообщения: 4
ОС: ubuntu 9.10

С самого начала

Сообщение Werhovcew »

Всем доброго времени суток!
Оговорюсь: я - студент заочник. Была у меня Visual Studio но поймал её на передачи данных "на лево", и это была для меня последняя капля. ЗлоОС умерла! Теперь я в Linux! :laugh:
Но проблема в следующем: не знаю что нужно для компиляции исходников, как происходит отладка программы, как правильно запустить консольную программу .......
В общем расскажите как программируется в Linux ... с нуля! :crazy:
Спасибо сказали:
Аватара пользователя
deadhead
Сообщения: 1913
Статус: zzz..z

Re: С самого начала

Сообщение deadhead »

[x] close
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: С самого начала

Сообщение eddy »

Werhovcew писал(а):
12.07.2010 17:07
что нужно для компиляции исходников

Установленный gcc и нужные -devel пакеты, еще нужны make, иногда cmake и т.п.
как происходит отладка программы

например, при помощи gdb
как правильно запустить консольную программу .......

из консоли, вестимо :)

А вообще, думаю, с M$VS будет очень сложно переучиться программировать по-человечески (без всяких дурацких GUI и т.п.). Попробуйте для начала писать текст в каком-нибудь gedit'е. Потом, вполне возможно, привыкнете к vim'у или Emacs'у и вместо alt+tab, make, ./run, alt+tab будете пользоваться "горячими клавишами".
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали:
Аватара пользователя
Voral
Сообщения: 1205
ОС: Debian Wheezy (amd64)

Re: С самого начала

Сообщение Voral »

eddy писал(а):
12.07.2010 18:01
А вообще, думаю, с M$VS будет очень сложно переучиться программировать по-человечески (без всяких дурацких GUI и т.п.).

С момента перехода на делфи 3 (могу ошибиться вроде году в 1998) по 2008 год программировал именно со всякими "дурацкими гуями" в т.ч. и визуалстудии. (Впрочем кое что делал и просто в фаре. Все дело не в чем программировали, а как подходили к вопросу программирования.


Я бы порекомендовал попробовать QT SDK. я как раз таки перешел на связку QT и С c VisualStudio. Там есть и QTCreator (типа гуй)... Так же можно использовать для разработки (опять же в связки с qt [если речь идет о гуевых программах]) kDevelop там же можно и просто на C/C++. На счет удобства работы в них точно не скажу - на первый взгляд вроде нормально. Сам я в kate пишу все сейчас, хотя последнее время решил попробовать использовать kdevelop.

Вообще я поначалу вообще "тащился" от qt (сейчас тоже все полностью устраивает):
- реализованно много полезных классов, на подобие которых мне приходилось тратить время
- все кроссплатформенно (ну естественно если не юзать каких то особенностей) я пробовал и под винду и под линукс один и тот же проект скомпилировать, до мака пока не дошел но уже договорился :)

А так для консолек и qt не обязателен ссылки дали.

По qt есть неплохая книженция для начала:

С++ Программирование GUI с QT4.




То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Спасибо сказали:
AlexBel
Сообщения: 27

Re: С самого начала

Сообщение AlexBel »

Документация по программированию в Linux на opennet http://www.opennet.ru/docs/137.shtml
Документация по утилитам GNU http://linuxland.itam.nsc.ru/gnuh.html
Спасибо сказали:
richrd
Сообщения: 227

Re: С самого начала

Сообщение richrd »

Werhovcew писал(а):
12.07.2010 17:07
... Была у меня Visual Studio но поймал её на передачи данных "на лево" ...

А она была как у большинства или честно лицензионная?
По студенческому вроде можно получить на халяву.
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: С самого начала

Сообщение rm_ »

eddy писал(а):
12.07.2010 18:01
(без всяких дурацких GUI и т.п.). Попробуйте для начала писать текст в каком-нибудь gedit'е.

Что ж не в "ed"-е? Советовать новичкам gedit, когда есть прекрасный IDE Geany -- может проще сразу написать, "да отвяжитесь вы, у нас тут всё для таких как вы слишком илитно"? А фраза "дурацкий GUI" видимо проистекает из широко распространённого мнения "если у нас этого нету, значит оно не нужно, и даже вредно"?) :)
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: С самого начала

Сообщение eddy »

rm_ писал(а):
12.07.2010 22:33
А фраза "дурацкий GUI" видимо проистекает из широко распространённого мнения "если у нас этого нету, значит оно не нужно, и даже вредно"?)

Я поначалу тоже всякие дурацкие GUI пытался в кутях лепить, пока не дошло до меня, что не нужно оно: консоль и только консоль. Ну, а если нужно показать какие-нибудь изображения или по ходу работы программы менять параметры, лучшее решение - веб интерфейс. (правда, почти все, что я написал, изначально и рассчитано на удаленное управление - сишный CGI на стороне сервера, html5 на стороне клиента).
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: С самого начала

Сообщение rm_ »

eddy писал(а):
12.07.2010 22:54
rm_ писал(а):
12.07.2010 22:33
А фраза "дурацкий GUI" видимо проистекает из широко распространённого мнения "если у нас этого нету, значит оно не нужно, и даже вредно"?)

Я поначалу тоже всякие дурацкие GUI пытался в кутях лепить, пока не дошло до меня, что не нужно оно: консоль и только консоль. Ну, а если нужно показать какие-нибудь изображения или по ходу работы программы менять параметры, лучшее решение - веб интерфейс. (правда, почти все, что я написал, изначально и рассчитано на удаленное управление - сишный CGI на стороне сервера, html5 на стороне клиента).

Причём тут лепить и кути. Речь о выборе, в чём программировать: в голом текстовом редакторе максимум с подсветкой синтаксиса, либо в IDE с разными вкусностями, вроде "пишешь название функции, открываешь скобку, тут же маленькая всплывающая подсказка со списком параметров и их типами" (aka Intellisense). Не говоря уж о "мелочах" типа дерева функций/процедур/переменных/типов текущего файла в дереве на панельке слева, по которому можно бродить, сразу же перемещаясь в соответсвующие места исходников. Это всё "дурацкий GUI"?
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: С самого начала

Сообщение eddy »

НУ,
rm_ писал(а):
12.07.2010 23:24
IDE с разными вкусностями

это, конечно, хорошо и удобно. Просто я никогда не писал больших проектов (самый большой - всего лишь ~3800 строк на С + ~600 на html и javascript), поэтому мне и простых mcedit/gedit хватает.
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали:
Аватара пользователя
Voral
Сообщения: 1205
ОС: Debian Wheezy (amd64)

Re: С самого начала

Сообщение Voral »

eddy писал(а):
12.07.2010 22:54
Я поначалу тоже всякие дурацкие GUI пытался в кутях лепить, пока не дошло до меня, что не нужно оно: консоль и только консоль. Ну, а если нужно показать какие-нибудь изображения или по ходу работы программы менять параметры, лучшее решение - веб интерфейс.


/me представил свои разработки перенесенные на вебинтерфейс и количество дополнительного гемора (с учетом того, что я в свободное от программирование время верстальщик).........

Согласитесь не всякая задача позволяет обходится консолью. ;)

В прочем речь не об этом.

А переход в редактор обладающими разными вспомогательными функциями типа подсказок, это конечно упрощение перехода. И вполне оправданно. И вешать ярлыки "дурацкие гуи", "дурацкие программы" не корректно. Речь может идти лишь о том, что "мне лично так не удобно", "я, лично, могу обойтись без гуя".......

Есть, на мой взгляд одно, но. Если цель обучение программированию. То сначала лучше побольше ручками делать, а когда та часть действий будет осознана сполна, вполне можно переложить ее в качестве рутины на среду разработки.

Тут опять же есть, с моей точки зрения, но. Как тут упоминали выше HTML и js, имхо работать с ними лучше в редакторе по проще.... По тому как некоторые навороченные редакторы суют туда всякую фигню, а объемы когда не настолько большие даже на самой навороченной странице (естественно если грамотно написано ;) )

То что не убивает нас, делает нас сильнее! © Ницше.
When life puts you in tough situations, don’t say "why me". Just say "try me © ?
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: С самого начала

Сообщение eddy »

Voral писал(а):
13.07.2010 10:33
Как тут упоминали выше HTML и js, имхо работать с ними лучше в редакторе попроще...

Это да. А для отладки есть отличные вещи вроде firebug и web developer.
А про объемы кода не скажите: у меня в некоторых скриптах 500-1000 строк кода. Хотя, это, скорее, исключение. Вот server-side обычно занимает значительно больше кода.
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали:
Werhovcew
Сообщения: 4
ОС: ubuntu 9.10

Re: С самого начала

Сообщение Werhovcew »

Спасибо всем кто откликнулся!!!
AlexBel
Документация по программированию в Linux на opennet http://www.opennet.ru/docs/137.shtml
Документация по утилитам GNU http://linuxland.itam.nsc.ru/gnuh.html
Вам отдельное спасибо, читаю.
На счет QT я в восторге: реализация сигналов это супер! :laugh:
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: С самого начала

Сообщение BratSinot »

Консольные приложения пишутся проще простого.
• В любом текстовом редакторе(хоть в cat), пишете программу. Я это делаю в MC, Emacs.
• Компилируем. Для удобства предлагаю сделать Makefile:

Код:

CXX=g++ SRC=test.cpp TARGET=test.run CXXFLAGS=-O2 LIBS= all: $(CXX) $(CXXFLAGS) $(LIBS) $(SRC) -o $(TARGET) strip ./$(TARGET)


Если нужно отлаживать, то убираем флаги оптимизации(-O2) и strip, и используем GDB. Для поиска утечек юзаем mcheck(), MALLOC_CHECK_, mtrace(), mpr, Valgrind, Electric Fence.
Спасибо сказали:
Аватара пользователя
agentprog
Сообщения: 362
Статус: Ad Astra per aspera
ОС: openSUSE 11.4, Arch

Re: С самого начала

Сообщение agentprog »

BratSinot писал(а):
15.07.2010 15:13
Для удобства предлагаю сделать Makefile:

если программа совсем маленькая (один файл) быстрее (хотя кому как :) ) компилить так, то бишь

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

gcc -g -o progname progname.c

если программа чуть больше, то можно и мейкфайл, но сначала попроще, чем приведенный выше:

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

CFLAGS=-g

progname: inc.o

если имеем программу из файлов progname.c, inc.h и inc.c
No problems - just solutions!
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: С самого начала

Сообщение Portnov »

Более того, если программа из одного файла progname.c, то можно просто make progname (без всякого мейкфайла).
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5413
ОС: Gentoo

Re: С самого начала

Сообщение /dev/random »

Portnov писал(а):
16.07.2010 11:53
Более того, если программа из одного файла progname.c, то можно просто make progname (без всякого мейкфайла).


А если программа из одного файла progname.c, но требует линковки с библиотеками, например, "-lm", то я обычно делаю так:

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

#if 0
${CC:-gcc} "$0" -o "$(basename "$0" .c)" -lm "$@"
exit "$?"
#endif

#include <...
Спасибо сказали:
Werhovcew
Сообщения: 4
ОС: ubuntu 9.10

Re: С самого начала

Сообщение Werhovcew »

Спасибо за советы!
Сейчас работаю в текстовом блокноте, компилирую через консоль. Но хочется попробовать поработать в средах разработки. После не продолжительных поисков наткнулся на русифицированную Anjutu. При компиляции простейшего кода она выдает странные ошибки которые отсутствуют при работе через консоль.
А именно:
Код:

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

#include <iostream>
using namespace std;
int main()
{
cout<<"Hello\n";
return 0;
}

Консоль:
root@antoxa-laptop:/home/antoxa# g++ -o Hello Hello.cpp
root@antoxa-laptop:/home/antoxa# ./Hello
Hello
root@antoxa-laptop:/home/antoxa#

Anjutu:
EXECUTING:
/home/antoxa/Hello.cpp Hello
----------------------------------------------
/home/antoxa/Hello.cpp: 2: using: not found
/home/antoxa/Hello.cpp: 3: Syntax error: "(" unexpected

----------------------------------------------
Program exited successfully with errcode (2)

Ее версия 2.28.0.0. Подскажите что ей не хватает?
Спасибо сказали:
Аватара пользователя
Crazy
Сообщения: 862
Статус: Адепт Дзен.
ОС: Mint, Win7.

Re: С самого начала

Сообщение Crazy »

Видно проект Anjutu под Си, а код C++.

Desipere in loco
Спасибо сказали:
Werhovcew
Сообщения: 4
ОС: ubuntu 9.10

Re: С самого начала

Сообщение Werhovcew »

Видно проект Anjutu под Си, а код C++.

И под С++ тоже- по этому и скачивал.
Спасибо сказали:
Аватара пользователя
broom
Бывший модератор
Сообщения: 1629
Статус: мизантроп.ка
ОС: Gentoo

Re: С самого начала

Сообщение broom »

Werhovcew писал(а):
20.07.2010 15:25
Видно проект Anjutu под Си, а код C++.

И под С++ тоже- по этому и скачивал.

Рискну предположить, что имелось в виду:
при создании нового проекта в программе Anjuta был выбран не тот язык (соответственно, не тот компилятор).
but in the darkness, behind your smile, you scream... © Dio
Спасибо сказали: