Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Компиляция С кода на Ubuntu.  (Прочитано 2214 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн NowhereBoy

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
  • Long Live At Rock'n'Roll
    • Просмотр профиля
Компиляция С кода на Ubuntu.
« : 24 Июля 2013, 11:20:17 »
Всем доброго времени суток. Начал изучать С++, и решать по нему задачи.
В общем столкнулся с очень известной проблемой при компиляции) Как её решать так и не понял...
imagine@ubuntu:~$ gcc /media/Data/aventhor.c
/media/Data/aventhor.c:1:19: фатальная ошибка: iostream: Нет такого файла или каталога
компиляция прервана.
Когда сохраняю код в cpp
imagine@ubuntu:~$ g++ /media/Data/aventhor.cpp
/media/Data/aventhor.cpp:2:18: фатальная ошибка: conio.h: Нет такого файла или каталога
компиляция прервана.
Так же  когда в последнем случае убираю .h-тоже самая ошибка , а когда убираю это библиотеку вообще:
imagine@ubuntu:~$ g++ /media/Data/aventhor.cpp
imagine@ubuntu:~$
А вот собственно и код программы:
Код: (cpp) [Выделить]
#include<iostream>
#include<conio.h>
int main()
{
int a[10],k,i;
k=0;
std::cin>>a[0];
for(i=1;i<10;i++)
{
std::cin>>a[i];
if(a[i]!=a[0])
{
k=1;
}
}
if(k==1)
{
setlocale(LC_ALL, "rus");
std::cout<<"Различные";
}
else
{
setlocale(LC_ALL, "rus");
std::cout<<"Одинаковые";
}
return 0;
getch();
}
Буду очень благодарен за помощь.
Я немного знаком с вашим форумом поэтому обращение к Lifewalker: Не отговаривай меня бросать С  8)

« Последнее редактирование: 25 Июля 2013, 17:35:35 от NowhereBoy »

Оффлайн andrew_bye

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 2698
    • Просмотр профиля
Re: Компиляция С кода на Ubuntu.
« Ответ #1 : 24 Июля 2013, 11:32:07 »
Так C или С++?

Может это поможет http://www.cyberforum.ru/cpp-linux/thread455639.html
« Последнее редактирование: 24 Июля 2013, 11:34:01 от andrew_bye »

Оффлайн SergeyIT

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5683
  • Все по палатам!
    • Просмотр профиля
Re: Компиляция С кода на Ubuntu.
« Ответ #2 : 24 Июля 2013, 12:52:34 »
NowhereBoy,
1. Добро пожаловать в линукс
2. Про conio.h - http://www.cyberforum.ru/cpp-linux/thread575014.html и далее в интернете...
...
100500. Может отсюда начать? http://www.firststeps.ru/linux/
Извините, я все еще учусь

Оффлайн NowhereBoy

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
  • Long Live At Rock'n'Roll
    • Просмотр профиля
Re: Компиляция С кода на Ubuntu.
« Ответ #3 : 24 Июля 2013, 19:32:53 »
andrew_bye,SergeyIT Cпасибо большое ) Буду разбираться. Conio.h оказалась приблудой для Windows поэтому Linux и не воспринимает.
А программу получилось скомпилировать. Первый успех =)
g++ -o aventhor.exe -Wall /media/Data/aventhor.cpp
~/aventhor.exe

Оффлайн quiet_readonly

  • Участник
  • *
  • Сообщений: 133
    • Просмотр профиля
Re: Компиляция С кода на Ubuntu.
« Ответ #4 : 25 Июля 2013, 15:06:32 »
К слову, добавлять суффикс .exe в линуксе необязательно; тут исполняемые файлы распознаются не по расширению.

P.S. И setlocale будет иметь эффект только в винде (в линуксе консоль имеет кодировку utf8, как и ваши исходники). Даже в винде проще обходиться без setlocale, используя вместо этого исходники в utf8 (как у вас сейчас) и перекодируя их при компиляции в кодировку ibm866 с помощью флагов компилятора MinGW "-finput-charset=utf8 -fexec-charset=ibm866". Так что можно смело убрать setlocale, использовать перекодирование силами компилятора в винде и не читать все статьи на тему "как вывести русский текст в C++", потому что предлагаемые там способы один другого дурнее.
« Последнее редактирование: 25 Июля 2013, 15:10:27 от quiet_readonly »

Оффлайн peregrine

  • FSM
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 7211
  • Gentoo x64 Ubuntu 16.04.1 x64
    • Просмотр профиля
Re: Компиляция С кода на Ubuntu.
« Ответ #5 : 25 Июля 2013, 16:04:38 »
NowhereBoy, надеюсь Вы знаете, что пишете не на C, а на C++
getch(); не нужен, как и setlocale и conio.h
А вот код надо оформлять красиво, с табуляцией, пустыми строками и подсветкой (на форуме так можно написав в первом теге code=cpp или другой язык программирования), но табуляцию сами расставлять должны.
« Последнее редактирование: 25 Июля 2013, 16:09:51 от peregrine »

Оффлайн NowhereBoy

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
  • Long Live At Rock'n'Roll
    • Просмотр профиля
Re: Компиляция С кода на Ubuntu.
« Ответ #6 : 25 Июля 2013, 17:40:19 »
quiet_readonly,
Я не понимаю как перекодировать...
MinGW "-finput-charset=utf8 -fexec-charset=ibm866" как и где именно это использовать?

peregrine
Да понимаю что С++
Код буду оформлять как вы сказали, просто не знал как выделить для С++ можно )

Оффлайн peregrine

  • FSM
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 7211
  • Gentoo x64 Ubuntu 16.04.1 x64
    • Просмотр профиля
Re: Компиляция С кода на Ubuntu.
« Ответ #7 : 25 Июля 2013, 17:43:09 »
NowhereBoy, исходники сохранять в UTF8 и все дела.

Оффлайн quiet_readonly

  • Участник
  • *
  • Сообщений: 133
    • Просмотр профиля
Re: Компиляция С кода на Ubuntu.
« Ответ #8 : 26 Июля 2013, 23:08:34 »
quiet_readonly,
Я не понимаю как перекодировать...
MinGW "-finput-charset=utf8 -fexec-charset=ibm866" как и где именно это использовать?
В линуксе и консоль, и файлы по умолчанию в utf8, тут делать ничего не придётся. А вот если надо будет скомпилировать под винду, то можно сделать это с помощью компилятора mingw (это GCC, портированный на windows, и в том числе он может компилировать из-под линукса для винды, ищите пакеты mingw в репозиториях). Компилятор mingw является просто виндовой версией GCC и умеет обрабатывать его флаги компиляции для перекодировки из utf8 в ibm866, используемый в консоли в винде.

 

Страница сгенерирована за 0.061 секунд. Запросов: 25.