LINUX.ORG.RU

Code::Blocks / g++: fatal error. Помогите решить проблему

 ,


0

1

Только недавно перешел на Ubuntu версия 16.04LTS(64-х разрядная). Windows надоел своими вечнымы лагами и потреблением ресурсов. Доволен Линуксом как слон, осваиваю его просторы.Я начинающий программист изучаю С/C++. Установил среду разработки Code::Blocks 13.12. Уже пользовался этой средой на Винде. Возникла проблема. Создаю новый проект (Console application) сохраняю в Домашняя папка/code программы работают. Но если сохраняю на Рабочий стол - ошибка. Вот пример:

#include <iostream>
using std::cout;
using std::endl;
int main()
{
	using pt = const char *;
	//typedef const char* pt;
	pt str = "Two Things Are Infinite: the Universe and Human Stupidity!";
	cout << str << endl;
	return 0;
}
Компилирую и запускаю, после чего выдает ошибку: -------------- Build: Debug in out (compiler: GNU GCC Compiler)---------------

g++ -Wall -fexceptions -g -std=c++11 -c "/home/alex/Рабочий стол/out/main.cpp" -o obj/Debug/main.o g++ -o bin/Debug/out obj/Debug/main.o g++: error: obj/Debug/main.o: Нет такого файла или каталога g++: fatal error: no input files compilation terminated. Process terminated with status 1 (0 minute(s), 0 second(s)) 0 error(s), 0 warning(s) (0 minute(s), 0 second(s))[/em]

Удобнее с проектами на рабочем столе работать. Пробовал изменять настройку Terminal to launch console programs c xterm -T $TITLE -e на gnome-terminal --disable-factory -t $TITLE -x один раз запустилось но, потом снова та же история. Помогите решить проблему.

«/home/alex/Рабочий стол/out/main.cpp»

Рабочий стол

Это вообще, законно?

EXL ★★★★★ ()

Вообще, Code::Block довольно-таки слабенькая и неуклюжая IDE.

Советую обратить твой взор на Qt Creator (она работает с обычными проектами на C и C++, без Qt) или на CLion.

EXL ★★★★★ ()
Ответ на: комментарий от EXL

А почему должно быть не законно? Это же всего лишь Рабочий стол, который в той же Домашней папке что и папка code в которой все работает.

alex_code ()
Ответ на: комментарий от EXL

Спасибо, обращу внимание. Но таки сильно привязался к Code::Blocks. Хочется в этой среде продолжать работать с удобствами и без мелких проблем.

alex_code ()
Ответ на: комментарий от alex_code

Потому что кириллица в путях до исходников.

EXL ★★★★★ ()
Ответ на: комментарий от alex_code

«Рабочий стол» имеет пробел в имени, что в некоторых случаях может привести к проблеме. Судя по кавычкам, конкретно тут проблемы быть, вроде как, не должно, но вообще у тебя «/home/alex/Рабочий» «стол/out/main.cpp» могут обработаться как два разных аргумента. А файла «/home/alex/Рабочий» у тебя, очевидно, нет.

Deleted ()
Ответ на: комментарий от Deleted

Что странно, gcc должен бы ругнуться, мол херня этот ваш Рабочий стол, а он проглатывает и ругается только на линковке.

EXL ★★★★★ ()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от EXL

Думаю, из-за этого

-c "/home/alex/Рабочий стол/out/main.cpp"

Но почему в итоге ничего не вышло и связано ли это с кириллицей, мне неизвестно.

Deleted ()
Последнее исправление: ecko (всего исправлений: 1)

Похоже на то, что компилируется в одном месте, а линкуется в другом. Если там какой-то проект, то надо смотреть на настройки его каталогов. Если этот проект был перемещён, то в нём могли сохраниться старые пути. Может быть проще попробовать заново создать проект на новом месте.

xaizek ★★★★★ ()

Удобнее с проектами на рабочем столе работать

Если проект открывается только в codeblocks, то чем это удобнее любого другого каталога.

Насчёт связи ошибки с пробелом можешь проверить создав проект в другом каталоге с именем на латинице и пробелом, а насчёт кириллицы - в каталоге с именем на кириллице без пробела.

Из ppa-репозитория можно поставить codeblocks 16.01 (проблему это не решит, но поновее будет)

grem ★★★★★ ()

Похоже на то, что просто не существует директории «obj/Debug»

oleeq2 ()
Ответ на: комментарий от EXL

Спасибо, ты прав. Поменял название Рабочего стола на лат. Desktop и все заработало.И в самом деле интересно что gcc не ругнулся

alex_code ()
Ответ на: комментарий от grem

Создал проект в другом каталоге на латинице и с пробелом, все работает. А вот в каталоге с кириллицей - выше упомянутая проблема. Спасибо за ответы!

alex_code ()
Ответ на: комментарий от alex_code

Мда. Шёл 2016 год, несмотря на повсеместный UTF-8, ещё остались глюки из 70-ых.

EXL ★★★★★ ()
Ответ на: комментарий от alex_code

Я для себя эти проблемы решил тупо переключением системного языка на en_US. И подобные проблемы исчезли.

EXL ★★★★★ ()
Ответ на: комментарий от EXL

Тоже как вариант. Эх, вот из-за таких не значительных багов приходится тратить время на их устранение для нормального функционирования.

alex_code ()
Ответ на: комментарий от alex_code

Просто старайся не использовать кириллицу/пробелы в путях. Избежишь миллион проблем не в этом, так в другом месте.

ncuxer ()
Ответ на: комментарий от ncuxer

В винде кстати нет вообще проблем с этим.

cl.exe отлично жуёт D:\User\Ящерик Рептилоидович\Рабочий стул\Свалка\Проекты\Глюкалка\Глюкалка.cpp

EXL ★★★★★ ()

Windows надоел своими вечнымы лагами

Ага. А потом тред про какую-то долбанутую проблему, которая только в линуксе есть

hotpil ★★★ ()
Ответ на: комментарий от hotpil

Баги везде есть, вопрос - в каком количестве. А проблемы нужно решать и копать глубже что б потом такое не повторялось. Для этого и создаются соответствующие темы.

alex_code ()
Ответ на: комментарий от EXL

g++ тоже должен жрать всё без проблем. Проблема конкретно в CodeBlocks, не?

ncuxer ()
Ответ на: комментарий от ncuxer

читать умеешь? выхлоп gcc видишь? ну и при чём здесь Code::Blocks? он только запускает сборку make.

Iron_Bug ★★★★ ()
Ответ на: комментарий от EXL

Потому что кириллица в путях до исходников.

шел 2016 год)

vvviperrr ★★★★★ ()
Ответ на: комментарий от vvviperrr

шел 2016 год)

А дурачки со скобочками продолжали постить тупняк на ЛОРе.

anonymous ()

CodeBlocks это вообще глюкодром, и с неанглийскими буквами у него полная жопа была всегда и будет. возьми QtCreator и не мучайся.

i36_zubov ()
Ответ на: комментарий от Iron_Bug

Поставил ради интересу Code::Blocks. Создал проект в «Рабочий стол» Нажал кнопку Build. Выхлоп такой-же, но! что я вижу. Первая строка не сругалась, но файла, main.o, на выходе нет. Линковщик, само-собой, скажет фиг-те соберу.

Ввожу те-же команды в консоли, и о ЧУДО, оно работает!

Отсюда вопрос. Кто всё-таки виноват? Несчастный g++ или всё-же Code::Blocks? Который не работает не с англоsucksкими буквами.

anonymous ()
Ответ на: комментарий от anonymous

Бага, в трекере кодоблока, есть.
Висит там с 2014го года.
Т.е. всем, хм..., пофиг.

anonymous ()
Ответ на: комментарий от EXL

повсеместный UTF-8

Если бы. Повсеместный он только в вебе, а так

http://utf8everywhere.org/

UTF-16 remains popular today, even outside the Windows world. Qt, Java, C#, Python (prior to the CPython v3.3 reference implementation, see below) and the ICU—they all use UTF-16 for internal string representation.

utf8nowhere ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.