LinuxForum.Fans
Тема

Средства разработки в linux c++

Автор: joub 28 сообщений 10276 просмотров
#163704
serggeee написал:
ну тогда дапустим простая программа Hello world
text

#include <stdio.h>

main() { printf ("Hello world\n"); }

text

[serrggeee@localhost ~]$ sh 1.cpp
1.cpp: line 4: syntax error near unexpected token `"Hello world\n"'
1.cpp: line 4: `            printf ("Hello world\n");'
[serrggeee@localhost ~]$ 

я так понимаю у меня не хватает какой-то библиотеки

А скомпилировать не судьба?
Компилируем
[console]gcc -o 1 1.cpp[/console]
Запускаем
[console] ./1[/console]

#163718
serggeee написал:
ну тогда дапустим простая программа Hello world
text

#include <stdio.h>

main() { printf ("Hello world\n"); }

text

[serrggeee@localhost ~]$ sh 1.cpp
1.cpp: line 4: syntax error near unexpected token `"Hello world\n"'
1.cpp: line 4: `            printf ("Hello world\n");'
[serrggeee@localhost ~]$ 

я так понимаю у меня не хватает какой-то библиотеки

Кхм...... И от куда ОС (любая) должна узнать что это Си? То, что вы написали расширение cpp ни о чем не говорит, можно написать и "blabla" все равно это будет код на языке Си++ и будут те же самые ошибки.

А так же вам стоит узнать, что такое интерпретируемый и компилируемый ЯП...

sh - это не интерпретатор C++!!!

Срочно читать букварь.

#163726

да я пропустил, компилировал я так g++ 1.cpp
но по совету сделал так

text

[serrggeee@localhost ~]$ gcc -o 1 1.cpp
/tmp//ccXTeWRb.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
collect2: выполнение ld завершилось с кодом возврата 1

как видно результат отрицательный

#163763
serggeee написал:
да я пропустил, компилировал я так g++ 1.cpp

Если эта команда (g++ 1.cpp) завершилась без ошибок, то запускайте
[console]./a.out[/console]

#163765
serggeee написал:
да я пропустил, компилировал я так g++ 1.cpp
но по совету сделал так
[serrggeee@localhost ~]$ gcc -o 1 1.cpp

сохраните файл с расширением ".c". или используйте g++

#163773
Fat-Zer написал:

сохраните файл с расширением ".c". или используйте g++

Видимо, от версии gcc зависит
[console][Птн Май 20@~]$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i486-linux-gnu/4.5.3/lto-wrapper
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.5.3-1' --with-bugurl=file:///usr/share/doc/gcc-4.5/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.5 --enable-shared --enable-multiarch --with-multiarch-defaults=i386-linux-gnu --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.5 --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-plugin --enable-gold --enable-ld=default --with-plugin-ld=ld.gold --enable-objc-gc --enable-targets=all --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.5.3 (Debian 4.5.3-1)
[Птн Май 20@~]$ cd ~/testplace/
[Птн Май 20@~/testplace]$ cat 1.cpp
#include <stdio.h>

main() {
printf ("Hello world\n");
}[Птн Май 20@~/testplace]$ gcc -o 1 1.cpp
[Птн Май 20@~/testplace]$ ./1
Hello world
[/console]
В более ранних версиях gcc ошибки имели место.

#163780

voral можно ещё один вопрос и я начну читать букварь, Дапустим я начинаю писать прогу на С++ я сначала пишу вот такие штуки типа #include <stdio.h>, как я понимаю это всевозможные библиотеки или забыл как точно называется кажется родительские функции которые нужно расширить либо препроцессоры, так вот что я хотел спросить они во всех ОС стандартизованны, если я например включаю #include <stdio.h> то от куда я буду знать что эти библиотеки существуют.

#163802
serggeee написал:
voral можно ещё один вопрос и я начну читать букварь, Дапустим я начинаю писать прогу на С++ я сначала пишу вот такие штуки типа #include <stdio.h>, как я понимаю это всевозможные библиотеки или забыл как точно называется кажется родительские функции которые нужно расширить либо препроцессоры, так вот что я хотел спросить они во всех ОС стандартизованны, если я например включаю #include <stdio.h> то от куда я буду знать что эти библиотеки существуют.

Это ни функции, и даже не библиотеки на самом деле, и даже не препроцессоры. Директива Include (посмотрите на переод с англицкого) означат что вы вот на это самое место хотите вставить содержимое некоего файла, которое понимает копилятор. По соглашению h - это заголовочные файлы. В которых могут быть описаны различные классы, какието переменнные.... дав ообще можно загнать чего угодно.... В данном конкретном случае stdio.h - это заголовочный файл стандартной библиотеки языка си.

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

Блин сейчас информация доступна - разве что сама в мозг не лезет. Вбиваешь в гугль инклуд и там море инфы.

Войдите или зарегистрируйтесь, чтобы ответить.