IDE

Программные средства разработки

Модераторы: Olej, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: IDE

Непрочитанное сообщение Olej » 05 авг 2012, 19:18

Теперь я один и тот же тестовый проект, обсуждаемый здесь в соседней теме: параллельность + синхронизации (примеры) "протяну" через разные IDE, чтобы сравнить минимально...

Проект на уровне заготовки исходного кода включает файлы:
common.c
common.h
Makefile
tspeed.c
(всё можно детально посмотреть в теме, откуда взят проект, там есть все исходники).
Это классическая структура "ручного" кода, потому, что меня интересовало бы импортировать такой код в "проект" каждого IDE, а не создавать такой проект с нуля на ровном месте.
Меня интересует возможность уже ведущийся проект (в любой среде) перетащить в произвольное время в любую другую среду, и там его продолжать.

Объём файлов исходного проекта (вместе с собранным исполнимым ELF-файлом):

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

bash-4.2$ du -hs
44K	.
Вот как один из проектов (не суть важно какой - из находящихся у меня в работе) выглядит в Geany - такой простенький и очень удобный редактор, сильно упрощающий работу, но не навязывающий своего стиля работы: никакого собственного понимания "проекта" от IDE, никаких импортов...
Изображение

Т.к. Geany не требует создания (импорта) какого-то особого проекта, то и структура каталога после сборки практически не меняется:

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

bash-4.2$ ls
common.c  common.h  Makefile  tspeed  tspeed.c	tspeed.o
bash-4.2$ du -hs
36K	.
- это и есть размер исходного проекта ... даже меньше ;-), но это за счёт того, что в исходном (родительском) проекте, откуда я для сравнения копирую его в каталоги проектов разных IDE, лежит текстовый файл протоколов выполнений.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: IDE

Непрочитанное сообщение Olej » 05 авг 2012, 21:02

Следующий кандидат - Kdevelop.
Мне удалось импортировать (импорта как токового я в нём не знаю) в него существующий проект только так:
1. открыть .c файл (tspeed.c) : Файл -> Открыть
2. сделать из Makefile проект: Проект -> Open Proect for Current File
После этого:
kdev1.png
(116.05 КБ) 6196 скачиваний
Здесь, конечно, куда больше возможностей чем Geany: и поиск в дереве исходных кодов, и сравнения, и отладчик...

Структура каталога (проекта) становится:

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

bash-4.2$ tree -a
.
|-- common.c
|-- common.h
|-- .kdev4
|   `-- kdevelop.src.kdev4
|-- kdevelop.src.kdev4
|-- Makefile
|-- tspeed
|-- tspeed.c
`-- tspeed.c~

1 directory, 8 files

bash-4.2$ du -hs
48K	
- по "разбуханию" объёма проекта - почти то же, что исходный проект.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: IDE

Непрочитанное сообщение Olej » 05 авг 2012, 22:43

Дальше на очереди - Eclipce (в моём случае JUNO)

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

Version: 4.2.0
Build id: I20120608-1400
1. Файл -> Создать -> Проект ...
ec1.png
ec1.png (41.21 КБ) 7618 просмотров
Из-за множества Java .class - старт Eclipce до рабочего состояния ощутимо долгий. Хотя в дальнейшей работе тормоза не сильно ощущаются.

2. и напускаем его на существующие файлы кода ...
ec2.png
ec2.png (51.5 КБ) 7616 просмотров
ec3.png
(102.02 КБ) 6193 скачивания
Видно успешную сборку проекта.

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

bash-4.2$ pwd
/home/olej/2012_WORK/examples.DRAFT/PAR_SPEED/eclipse.src
bash-4.2$ tree -a
.
|-- common.c
|-- common.h
|-- .cproject
|-- Makefile
|-- .project
|-- tspeed
`-- tspeed.c

0 directories, 7 files
bash-4.2$ du -hs
44K	.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: IDE

Непрочитанное сообщение Olej » 05 авг 2012, 22:56

Дальше NetBeans.

1. Файл -> Создать проект ...
nb1.png
(70.21 КБ) 6194 скачивания
nb2.png
(81.8 КБ) 6193 скачивания
nb3.png
(110.61 КБ) 6191 скачивание
Проект импортирован + собран.

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

bash-4.2$ tree -a
.
|-- common.c
|-- common.h
|-- Makefile
|-- nbproject
|   |-- configurations.xml
|   |-- Package-Default.bash
|   |-- private
|   |   |-- configurations.xml
|   |   |-- Default.properties
|   |   `-- private.xml
|   `-- project.xml
|-- tspeed
`-- tspeed.c

2 directories, 11 files
bash-4.2$ du -hs
64K	.
Что-то он там от себя добавил, немного.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: IDE

Непрочитанное сообщение Olej » 06 авг 2012, 15:43

Следующий на очереди SolarisStudio.

Здесь вопрос особый:
- это творение для Sun Solaris делалось, не для Linux - потом была адаптирована версия под Linux...
- там другие "привычки" везде сквозят, начиная с установки и настройки...
- хотелось бы его иметь возможность поиспользовать не только с GCC, но и с CC компилятором Sun.

1. Для SolarisStudio установил JDK вместо OpenJDK, это описано здесь: JDK & OpenJDK.
Установка в /opt/oracle/jdk1.7.0_05 :

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

bash-4.2$ env | grep J
JRE_HOME=/opt/oracle/jdk1.7.0_05/jre
JAVA_HOME=/opt/oracle/jdk1.7.0_05
2. C http://www.oracle.com/technetwork/serve ... index.html взяты свежие инсталляции SolarisStudio:

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

bash-4.2$ ls -l Sol*.bz2
-rw-rw-r--. 1 olej olej 385866910 июля  30 23:07 SolarisStudio12.3-linux-x86-bin.tar.bz2
-rw-rw-r--. 1 olej olej 436944436 июля  30 23:36 SolarisStudio12.3-linux-x86-rpm.tar.bz2
Немаленькие - 300-400Mb. Что они с себя представляют я уже писал выше, shell-установщик *.-rpm.tar.bz2 меня не интересует. А вот *-bin.tar.bz2 - разархивируем ... куда угодно, хоть в $HOME, но я это делаю в тот же /opt/oracle:

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

bash-4.2$ pwd
/opt/oracle
bash-4.2$ ls
jdk1.7.0_05  solarisstudio12.3
bash-4.2$ du -hs solarisstudio12.3/
1,3G	solarisstudio12.3/
3. Добавляем пути - в этом случае это вполне резонно в ~/.bashrc :

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

SOLSTUDIO=/opt/oracle/solarisstudio12.3
PATH=$SOLSTUDIO/bin:$PATH
export PATH
MANPATH=$SOLSTUDIO/man
export MANPATH
В принципе, этого достаточно для запуска SolarisStudio.

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

bash-4.2$ env | grep PATH
MANPATH=/opt/oracle/solarisstudio12.3/man
PATH=/opt/oracle/solarisstudio12.3/bin:/opt/oracle/solarisstudio12.3/bin:/usr/lib/qt-3.3/bin:/opt/oracle/jdk1.7.0_05/bin:/opt/oracle/jdk1.7.0_05/jre/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/olej/.local/bin:/home/olej/bin
CLASSPATH=/opt/oracle/jdk1.7.0_05/jre/lib/rt.jar:.
WINDOWPATH=1
QT_PLUGIN_PATH=/usr/lib64/kde4/plugins:/usr/lib/kde4/plugins
Как и в случае JDK всё можно сделать без бинарной инсталляции под root ... с волнующим результатом :lol: .

4. Открываем в качестве проекта существующий уже раньше каталог:
oss1.png
(48.62 КБ) 6188 скачиваний
Появился готовый для продолжения проект:
oss2.png
(30.97 КБ) 6187 скачиваний

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: IDE

Непрочитанное сообщение Olej » 06 авг 2012, 15:58

Olej писал(а):Появился готовый для продолжения проект:
Но тут нас ждёт неприятная неожиданность, с которой нужно повозиться :evil: - ошибка сборки, проверяем ошибку в терминале:

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

bash-4.2$ dmake all
dmake: defaulting to parallel mode.
See the man page dmake(1) for more information on setting up the .dmakerc file.
notebook --> 1 job
cc  -lpthread -lm  common.c -o tspeed
notebook --> Job output
cc  -lpthread -lm  common.c -o tspeed
/usr/lib/gcc/i686-redhat-linux/4.7.0/../../../crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
collect2: ошибка: выполнение ld завершилось с кодом возврата 1
*** Error code 1
dmake: Fatal error: Command failed for target `tspeed'
... но строка сборки цели выглядит не совсем так, как в предыдущих IDE.
В итоге:
- dmake - это не GNU make, и он ... "более строгих правил", он не захотел понимать встроенные переменные (расширение GNU make) ... точнее, не захотел понять только '$<':

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

tspeed:  tspeed.c common.h common.c
        $(CC) $(COPT) -lpthread -lm $< common.c -o $@
- переписал:

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

tspeed:  tspeed.c common.h common.c
        $(CC) $(COPT) -lpthread -lm tspeed.c common.c -o tspeed
- проверяем:

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

bash-4.2$ dmake
dmake: defaulting to parallel mode.
See the man page dmake(1) for more information on setting up the .dmakerc file.
notebook --> 1 job
cc  -lpthread -lm tspeed.c common.c -o tspeed
notebook --> Job output
cc  -lpthread -lm tspeed.c common.c -o tspeed
tspeed.c:
common.c:
В GUI IDE проект и его сборка:
oss3.png
(115.9 КБ) 6191 скачивание
И выполнение:
oss4-run.png
(106.85 КБ) 6190 скачиваний
Здесь слегка видно часть мощного runtime инструментария Solaris Studio анализа и оптимизации кода: использование потоков, утечки памяти, ...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: IDE

Непрочитанное сообщение Olej » 06 авг 2012, 16:06

Olej писал(а):В GUI IDE проект и его сборка:
Это уже сборка Sun компилятором CC:

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

bash-4.2$ cc -V
cc: Sun C 5.12 Linux_i386 2011/11/16
Вот результирующий исполнимый файл, собираемый GCC в предыдущих проектах (он во всех проектах одинаковый):

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

bash-4.2$ file tspeed 
tspeed: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0xfc52d9c4abadb18f57258d00c7c7c3808e9dcd86, not stripped

bash-4.2$ ls -l tspeed 
-rwxrwxr-x. 1 olej olej 10161 авг.   5 16:08 tspeed
И файл, собранный OSS:

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

bash-4.2$ file tspeed 
tspeed: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), not stripped

bash-4.2$ ls -l tspeed 
-rwxrwxr-x. 1 olej olej 12678 авг.   6 14:58 tspeed
Выбор используемого компилятора между CC и GCC легко меняется или в IDE в настройках параметров проекта, или переменными окружения ($PATH - порядок следования каталогов).

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: IDE

Непрочитанное сообщение Olej » 12 авг 2012, 19:53

Olej писал(а):Теперь я один и тот же тестовый проект, обсуждаемый здесь в соседней теме: параллельность + синхронизации (примеры) "протяну" через разные IDE, чтобы сравнить минимально...

Проект на уровне заготовки исходного кода включает файлы:
common.c
common.h
Makefile
tspeed.c
Если кого заинтересует а). как один и тот же проект выполняется в разных IDE + б). как можно один проект перетаскивать для развития между разными IDE - вот архив. В нём:

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

bash-4.2$ ls -l
итого 32
-rwxrwxr-x. 1 olej olej  364 авг.   5 16:08 allupdate
-rwxrwxr-x. 1 olej olej  122 авг.   5 16:08 child_update
drwxrwxr-x. 2 olej olej 4096 авг.   5 22:33 eclipse.src
drwxrwxr-x. 2 olej olej 4096 авг.   5 19:21 geany.src
drwxrwxr-x. 3 olej olej 4096 авг.   5 19:09 kdevelop.src
drwxrwxr-x. 3 olej olej 4096 авг.   5 22:52 netbeans.src
drwxrwxr-x. 3 olej olej 4096 авг.   6 14:58 oss.src
drwxrwxr-x. 2 olej olej 4096 авг.   5 16:08 src
- в каталоге src - исходные коды + Makefile
- в остальных каталогах (заканчивающихся на .src) - тот же проект импортированный в каждую IDE (IDE легко угадываются по имени каталога).

Если в исходные коды в src вносятся правки, то запуском скрипта:

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

bash-4.2$ ./allupdate
- обновятся файлы .c + Makefile, во всех каталогах (.src), соответствующих разным IDE.

Из всех IDE у меня не получается импортировать существующий проект в Code::Blocks.
У него своя древовидная структура проекта, очень напоминающая MS Visual C, ... собственно Code::Blocks и развивается как много-платформенная IDE (Windows, UNIX, Mac) и под многие языки программирования ... наследие Microsoft там сильно чувствуется.
Там можно по своему проекту создать новый (ручным add программных файлов в проект), но импортирование автоматом (как во всех предыдущих IDE) там предусмотрено только для проектов MS Visual C, есть работа с custom Makefile, но это довольно путано, и Makefile приходится править.
Вложения
par_speed.tgz
(31.42 КБ) 478 скачиваний

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: IDE

Непрочитанное сообщение Olej » 19 июн 2013, 17:48

Огромный перечень (~50 штук) перечисления существующих современных IDE с краткой общей характеристикой по каждой - здесь: Интегрированные среды.
Для ознакомления очень хорошая страничка.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: IDE

Непрочитанное сообщение Olej » 19 янв 2016, 15:58

Olej писал(а): Из всех IDE у меня не получается импортировать существующий проект в Code::Blocks.
На Code::Blocks вообще стоит остановиться подробнее:
Среда Code::Blocks IDE
— свободная много-платформенная среда разработки, сама система написана на С++, с использованием переносимой графической библиотеки wxWidgets http://www.wxwidgets.org/. Поддерживает языки программирования С и С++, но для разнообразных операционных систем (Windows, Linux, Mac OS X), среду можно собрать практически под любую UNIX систему, например FreeBSD. Обеспечивает кросс-разработку под ряд используемых процессорных платформ (ARM, AVR). Среда создаёт шаблоны приложений и поддерживает разработку для многих графических платформ (GTK+, Qt, wxWidgets, GLUT и другие), поэтому может оказаться особенно удобной для проектирования GUI приложений.
- это хорошая, простая, мощная IDE, мультиплатформенная, заточенная под все ОС;
- свободный проект с открытым кодом...
- принята в качестве учебной среды обучения студентов, например, в Южно-Уральском Университете (г.Челябинск) - что очень разумно, если уж организовывать обучение в Windows;
- среда, которая одинаково выглядит и функционирует, и в которой можно с одинаковым успехом писать и под Linux и под Windows;
- поддерживает альтернативно различные компиляторы:
Compilers-auto-detection.png
- но самое ценное, что не только поддерживает из установленных, но и устанавливает в Windows GCC.
- поддерживает множество шаблонов-моделей создаваемых приложений:
New-template.png
Для Windows скачать можно свободно:
- Code:Block 10.05 (с которым работают, например, Южно-Уральский Университет - это примерно 2010г.): http://ait.susu.ac.ru/download.php?id=c ... -setup.exe
- Code:Block 13.12 (последний 2015г.): http://www.codeblocks.org/downloads/binaries - здесь, собственно, найдёте под любой вариант ОС - я оттуда скачал вот такой экземпляр: http://sourceforge.net/projects/codeblo ... CC-481.exe. И установил в виртуальной машине в 5 минут.
Самое приятное в Windows-вариантах, что оно устанавливается вместе с компилятором GCC (MinGW), согласовано, и сраз можно приступать к работе в синтаксических стандартах GCC, без задрочек MS VS!

Это отличный путь проверки на совместимость программного кода под разными ОС, если для этого использовать виртуальные машины, скажем, под VirtualBox с установленной гостевой Windows 7.

Ответить

Вернуться в «Инструменты программирования»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя