Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: loshia21 в Feb 09, 2012, 23:16



Титла: Компилиране С++
Публикувано от: loshia21 в Feb 09, 2012, 23:16
Здравейте,от скоро програмирам на С++ та искам да попитам.След като реша дадена задача как след това да компилирам.Ето какво правя:
Първо отварям терминал инсталирах build-essential (sudo apt-get install build-essential),работя с Убунту 10.04.
След инсталацията пиша nano programa.c.
И да кажем искам на екрана да ми излезне "Hello World"
#include<iostream>
using namespace std;
int main()
{
cout<<:"Hello World"<<endl;
return 0;
}
След което отварям нов терминал и пиша:
gcc ./programa.c - o programa

Но ми излиза:
gcc: ./programa.c: No such file or directory
gcc: no input files
Можете ли да ми кажете каде точно бъркам.


Титла: Re: Компилиране С++
Публикувано от: dejuren в Feb 09, 2012, 23:22
Най-вероятно след nano не си записал коректно файла и gcc не го открива. Сложи една междинна стъпка:

ls -l ./programa.c

трябва да видиш името на файла, времето на създаване и т.н. в листинга.


Титла: Re: Компилиране С++
Публикувано от: loshia21 в Feb 09, 2012, 23:27
root@dimitar-laptop:/home/dimitar# ls -l ./programa.c
ls: cannot access ./programa.c: No such file or directory


Титла: Re: Компилиране С++
Публикувано от: borovaka в Feb 09, 2012, 23:44
Компилатора за C++ се казва g++. Компилираш по следния начин g++ ./sourcefile.cpp -o outputfilename


Титла: Re: Компилиране С++
Публикувано от: loshia21 в Feb 09, 2012, 23:55
Компилатора за C++ се казва g++. Компилираш по следния начин g++ ./sourcefile.cpp -o outputfilename

Пиша  g++ ./programa.cpp -o programa
Но пак ми излиза No such file directory


Титла: Re: Компилиране С++
Публикувано от: bop_bop_mara в Feb 10, 2012, 00:10
Къде е съхранен файла? Как е кръстен?


Титла: Re: Компилиране С++
Публикувано от: senser в Feb 10, 2012, 07:58
Да не би да си написал сорса (programa.c) като роот потребител, а после да се опитваш да я компилираш като нормален (като гледам промпта, който си пейстнал ме съмнява нещо такова).
Другото, което забелязах е, че си задал пътя до programa.c започващ с / - ако си я създал с нормален потребител не би трябвало да можеш да я запишеш в /.
След като ползваш Убунту, недей да пишеш като роот (не изпълнявай sudo su в терминала), използвай си твоя потребител за да създадеш програмата в домашната си директория и после пак с него я компилирай.
А за да намериш къде се намира programa.c може да изпълниш:
Код:
find / -name programa.c
Ако и така не я намериш - пак същото, но като роот (или напиши сорса отново с твоя потребител)


Титла: Re: Компилиране С++
Публикувано от: zxz в Feb 10, 2012, 11:41
http://www.youtube.com/watch?v=NbVcniNjeGA
http://www.youtube.com/watch?v=tHT2nAE9dF0


Титла: Re: Компилиране С++
Публикувано от: buserg в Feb 10, 2012, 12:04
1-во: Инсталираш g++;
2-ро: Инсталираш си codeblocks;

След като си начинаещ, това е най-добрия вариант за теб.


Титла: Re: Компилиране С++
Публикувано от: bop_bop_mara в Feb 10, 2012, 14:08
1-во: Инсталираш g++;
Той не идва ли с build-essential?

loshia21, подозирам, че при теб, освен обърквацията с това какво разширение трябва да сложиш и кой компилатор да ползваш, има и проблем със запазването на файла (т.е. си го написал, но не си го запазил, преди да излезеш от редактора).

По принцип процедурата е следната:
1. Проверяваш в коя директория се намираш в момента (pwd) или се придвижваш до директорията, в която ще оперираш.
2. Написваш си файла с който редактор ти харесва. Кръщаваш го, като му слагаш разширение .cpp (или някое друго за C++ код) и го запазваш. Излизаш от редкатора (освен ако не знаеш как през него да компилираш и пускаш програмата).
3. Може да провериш, че файлът присъства (ls). Може да му видиш и съдържанието (cat).
4. Компилираш: g++ file.cpp -o file (тук не е нужно да пишеш ./file.cpp или ./file)
5. Може да провериш, че изпълнимият файл присъства.
6. Пускаш: ./file

Слагам и картинка от тези стъпки (използвам vim, а не nano, няма никакво значение). Обърни внимание, че имаш грешка в кода, който си ни пейстнал.

(http://media.snimka.bg/s1/0043/026329926.jpg)