Установка MinGW/MSYS и настройка окружения для разработчика часть 2

Apr 08, 2015 18:39

1.5. Установка Subversion (svn)

Официальный сайт svn: http://subversion.apache.org/

Subversion или svn, это свободная централизованная система управления версиями, официально выпущенная в 2004 году компанией CollabNet Inc.


1.5.1. Установка svn из бинарного пакета:

1.5.1.1. Для того чтобы получить бинарный пакет svn, необходимо пройти процедуру регистрации на сайте http://www.collab.net/

1.5.1.2. После регистрации переходим на страницу загрузки http://www.collab.net/downloads/subversion и загружаем последнюю версию “Subversion command-line binaries”, под версию своей операционной системы. На момент написания статьи последняя версия 1.7.8.

1.5.1.3. Установка предельно проста. Запускаем установщик, и выбираем установочный путь, например, “C:\Qt\SVN”, затем жмем “Next” и Subversion установлен.

1.5.1.4. Проверить его работу можно набрав в консоли svn. После запуска должна появится строка “Type ‘svn help’ for usage.”

1.5.2. Список полезных команд, советов:

Помимо CollabNetSubversion существует еще одна версия клиента Subversion под Windows с более глубокой интеграцией в проводник, это TortoiseSVN.

Команды:

svn co http://(svn://)repository.url/svn/name # получаем файлы из репозитория, полная команда: svn checkout
svn up # получаем обновления из репозитория, полная команда: svn update
svn update -r rev_num ./file_name # извлекаем ревизию файла с номером rev_num
svn add ./filename # добавляем файл в репозиторий (текстовый или бинарный)
svn commit ./filename # заливаем файл в репозиторий (текстовый или бинарный)
svn rename ./old_filename ./new_filename # переименовываем файл в репозитории
svn remove ./file_name # удаляем файл/директорию из репозитория
svn st # просматриваем локально измененные файлы, полная команда: svn status
svn st -u # просматриваем локально измененные и изменившиеся в репозитории файлы
svn diff ./filename # показывает локальные изменения в файле построчно
svn diff -r rev_num1:rev_num2 ./filename # показывает различия между двумя ревизиями файла
svn revert ./filename # откатывает локальные изменения файла той, что в данный момент в репозитории
svn revert -R ./ # откатывает все локальные изменения файлов
svn log ./filename # список ревизий с комментариями
svn blame ./filename # показывает авторов изменений файла построчно
svn cleanup # снимает блокировки с файлов
svn info ./filename # Узнать информацию о файле
svn unlock http://repository.url/svn/file_name # снять блокировку файла
svn copy http://repository.url/svn/name/trunk/ http://repository.url/svn/name/branches/new_branch_name/ # создаем ветку
svn merge -r rev_num1:rev_num2 http://repository.url/svn/name/trunk/ # синхронизирует вашу ветку с главной линией разработки

<< Перейти к содержанию

1.6. Компиляция и установка git

Официальный сайт git: http://git-scm.com/

git - это распределённая система управления версиями файлов. Проект git был создан Линусом Торвальдсом, чтобы облегчить процесс управления разработкой ядра Linux, первая версия git’a выпущена 7 апреля 2005 года.

На сегодняшний день множество проектов используют git, наиболее крупные и значимые: ядро Linux, Android, MediaWiki.

Перейти к установке git из бинарного пакета >>

1.6.1. Компиляция git:

Внимание! Компиляция возможна, на выходе получаются рабочие бинарники, однако имеют место быть несколько неприятных багов.

Во-первых, git не может распознать адреса репозиториев, начинающихся на http или https, однако доступ по ssh работает отлично.

Во-вторых во время компиляции git раздувается до невероятных размеров (~700 MB), по идее размер можно намного урезать, если подлинковать динамические библиотеки, а не статические.

Настоятельно рекомендую воспользоваться официальным установщиком для Windows!

Если вы всё-таки захотели попробовать скомпилировать git, необходимо для начала скомпилировать и установить все его зависимости:

Зависимости:

Библиотека Expat

Библиотека cURL (libcurl)

Библиотека OpenSSL

1.6.1.1. Скачиваем стабильную версию исходников git с официального сайта (на данный момент последняя версия 1.8.1): git-1.8.1.tar.gz.

1.6.1.2. Распаковываем архив в папку “C:\Qt\build”, исходники git’a должны быть в папке “C:\Qt\build\git-1.8.1”.

1.6.1.3. Открываем файл “C:\Qt\build\git-1.8.1\Makefile” и изменяем строку #2455 на:

$(LIBS) $(OPENSSL_LINK) $(OPENSSL_LIBSSL) $(LIB_4_CRYPTO) -lgdi32 -lws2_32

После изменения сохраняем файл.

1.6.1.4. Запускаем “C:\Qt\MinGW\msys\1.0\msys.bat” или удобный ConEmu, установку которого я расписал выше, и набираем в консольном окне такие команды:

cd /c/Qt/build/git-1.8.1
make CURLDIR=/mingw NO_TCLTK=YesPlease NO_GETTEXT=YesPlease INSTALL=/bin/install prefix=/mingw install

1.6.1.5. git будет скомпилирован и установлен в MinGW окружениие.

1.6.2. Установка git из бинарного пакета:

1.6.2.1. Скачиваем стабильную версию установщика git с официального сайта (на данный момент последняя версия 1.8.0): Git-1.8.0-preview20121022.exe, 14.5 MB, git полностью совместим с окружением MinGW.

1.6.2.2. Запускаем установщик и следуем указанным инструкциям. После установки git занимает приблизительно 220 MB. Я устанавливал git в папку “C:\Qt\Git” со следующими параметрами (увеличить изображение можно по клику):




1.6.2.3. Git готов к работе! Если у вас была запущена консоль, перезапустите её и удостоверьтесь, что git прописался в PATH и отлично вызывается командой “git”.

1.6.3. Полезные команды и советы, создаем наш первый репозиторий на github.com:

1.6.3.1. Регистрируемся на github.com (Sign up) и подтверждаем свой электронный ящик.

1.6.3.2. Создаем новый репозиторий: github.com/new, заполняем как вам удобно все поля. После заполнения нажимаем кнопку “Create Repository”.

1.6.3.3. Теперь на локальном компьютере нужно создать файл ключа и записать его в профиль на гитхабе. Для этого выполняем в терминале следующее:

cd ~/.ssh
mkdir key_backup
cp id_rsa* key_backup
rm id_rsa*
ssh-keygen -t rsa -C "your_reg_github_email@youremail.com" #после строки (.ssh/id_rsa) нажимаем "Enter".
Enter passphrase (empty for no passphrase):
#тут мы вводим фразу-пароль (текст не отображается, не бойтесь), подтверждаем ее и нажмимаем "Enter".
clip < ~/.ssh/id_rsa.pub

Сгенерированный ключ скопируется в буфер обмена после выполнения последней команды.

1.6.3.4. Теперь нам нужно просто зайти на гитхабе в настройки ssh, нажать “Add Key”, скопировать ключ в большое поле и подтвердить действие.

1.6.3.5. Следующий шаг - создание локального репозитория на своём компьютере. Создадим для этого дела папку “C:\Qt\Repo”. И введем в терминал такие команды:

cd /c/Qt/Repo
git config --global user.email "ваш_ящик_указанный_при_реге_на_гитхабе@mail.com"
git config --global user.name "ваше_никнейм_на_гитхабе"
touch README.md
echo "# Hello GitHub\!" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/Ваше_имя/Test.git
git push -u origin master

При выполнении этих команд у вас спросят имя и пароль, которые вы вводили при регистрации. В случае, если вы заходите по ssh (git@github.com:ВашеИмя/Test.git), вам будет предложено ввести фразу-пароль. После выполнения команд в репозиторий на гитхабе добавится файл “README.md”.

1.6.3.6. Описание команд git’a.

git config --global user.email "ваш_ящик_указанный_при_реге_на_гитхабе@mail.com" # устанавливает ваш почтовый ящик.
git config --global user.name "ваше_никнейм_на_гитхабе" # устанавливает глобально ваше имя.
git init # инициализация нового репозитория.
git add . # добавление новых файлов в репозиторий (индексация).
git status # позволяет увидеть, какие файлы находятся в зоне ожидания.
git reset # сбросить весь индекс
git reset - filename # удалить из индекса изменения определенного файла.
git commit -m "Initial commit" # сохранение изменений.
git log # список сообщений о ваших фиксациях.
git checkout -f # откат изменений до предыдущей фиксации.
######## Отправка на сервер GitHub: ###################
git remote add origin git@github.com:username/name_repo.git
git push origin master
#######################################################
git checkout -b name_branch # создание новой ветки репозитория и переход на нее.
git branch # перечисление списка локальных веток.
git checkout master # переход на основную ветку.
git merge name_branch # объединение текущей ветки с name_branch.
git branch -d name_branch # удаление ветки
######## Отправка изменений на GitHub: ###################
git push
git push ssh://yourserver.com/~you/proj.git master:experimental
# отправить изменения из ветки master в ветку experimental удаленного репозитория.
git push origin :experimental
# в удаленном репозитории origin удалить ветку experimental.
git push origin master:master
# в удаленную ветку master репозитория origin (синоним репозитория по умолчанию)
# отправить изменения из локальной ветки master.
######## Создаем у себя копию удаленного репозитория: ####
git clone git://github.com/username/project.git master
##########################################################
git pull - забираем последние изменения в проекте.
git rm FILE1 FILE2 - удаление файла из репозитория.

1.6.3.7. Что можно почитать про git?

  1. Введение в git
  2. Как начать работать с GitHub: быстрый старт
  3. Работа с git для начинающих

<< Перейти к содержанию

2. Компиляция и установка библиотек в тулчейн MinGW

Для сборки и создания различных проектов вам возможно потребуются различные библиотеки. В этом разделе описана компиляция и установка наиболее популярных и используемых библиотек. Установка большинства либ сводится к простому копированию заголовочных файлов, статических и динамических библиотек в соответствующие корневые директории тулчейна MinGW. Файлы с расширением “*.dll” - это динамические библиотеки, они копируются в директорию “C:\MinGW\bin”, файлы с расширением “*.lib” или “*.a” - статические библиотеки, содержащие запакованные объектные модули, их место в “C:\MinGW\lib”. Заголовочные файлы с расширениями “*.h”, “*.hxx” или “*.hpp” должны располагаться в “C:\MinGW\include”.

Если вы устанавливаете уже скомпилированную библиотеку, проверьте, возможно ли её использовать с объектными модулями, которые генерирует компилятор MinGW.

<< Перейти к содержанию

2.1. Компиляция и установка библиотеки FreeGLUT

Описание:

Официальный сайт: http://freeglut.sourceforge.net/

FreeGLUT - это свободная и открытая реализация библиотеки OpenGL Utility Toolkit (GLUT), библиотека FreeGLUT предоставляет пользователю функции создания и управления окнами, которые содержат OpenGL-контекст на различных платформах, кроме того, библиотека позволяет отслеживать события клавиатуры, мышки и джойстика. Желательно использовать именно библиотеку FreeGLUT, вместо старого GLUT’а, так как библиотека работает значительно стабильнее на относительно новых операционных системах (Windows Vista, 7, 8) и поддерживает OpenGL версии 3.1.

FreeGLUT выпущен под лицензией X-Consortium.

Сборка:

2.1.1. Скачиваем последнюю версию исходников библиотеки FreeGLUT, на момент написания статьи это 2.8.0: freeglut-2.8.0.tar.gz

2.1.2. Распаковываем архив в папку “C:\Qt\build\GLUT”, исходники библиотеки должны быть в папке “C:\Qt\build\GLUT\freeglut-2.8.0″.

2.1.3. Запускаем “C:\Qt\MinGW\msys\1.0\msys.bat” или удобный ConEmu, установку которого я расписал выше, и набираем в консольном окне такие команды:

cd /c/Qt/build/GLUT/freeglut-2.8.0
./configure --prefix=/mingw
make
make install

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

Динамическая “libglut-0.dll” в “C:\Qt\MinGW\bin”

Статические “libglut.a” и “libglut.dll.a” в “C:\Qt\MinGW\lib”

Хэдеры в “C:\Qt\MinGW\include\GL”

2.1.5. Компиляция и запуск демо-кода:

2.1.5.1. Создаем файл “glutdemo.c” в папке “C:\Qt\build\GLUT”, вставляем в него такое содержимое:

#include

void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glClearColor(1.0f, 0.0f, 0.0f, 0.0f);
glFlush();
}

int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutCreateWindow("Demo");
glutDisplayFunc(display);
glutMainLoop();
return 0;
}

и сохраняем.

2.1.5.2. Для компиляции кода запускаем “C:\Qt\MinGW\msys\1.0\msys.bat” и набираем в консольном окне такие команды:

cd /c/Qt/build/GLUT
gcc -mwindows glutdemo.c -o glutdemo -lopengl32 -lglut
./glutdemo.exe

Данные команды скомпилируют код в исполнительный файл “glutdemo.exe”, при запуске которого создастся окно, полностью закрашенное в красный цвет:



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

Следует отметить, что для запуска «glutdemo.exe» необходимо добавить в переменную окружения PATH путь “C:\Qt\MinGW\bin”, подробнее смотрите пункт 1.1.1.1.

<< Перейти к содержанию

2.2. Компиляция и установка библиотеки GLUT

Описание:

Официальный сайт порта для Win32: http://user.xmission.com/~nate/glut.html

GLUT (OpenGL Utility Toolkit) это библиотека утилит для приложений под OpenGL, которая в основном отвечает за системный уровень операций ввода-вывода при работе с операционной системой. С помощью GLUT’а можно легко создать окно и управлять им. Кроме того библиотека позволяет: рисовать ряд простейших геометрических примитивов, отслеживать события клавиатуры и мыши, создавать несложные всплывающие меню и т. д. GLUT позволяет облегчить изучение OpenGL, так как для его использования не требуется знать API управления окнами. Библиотека GLUT была написана Mark’ом Kilgard’ом, а затем портирована на Windows Nate’ом Robins’ом.

Следует отметить, что порт библиотеки GLUT не обновлялся с 2001-го года, ее реализация работает достаточно нестабильно в современных операционных системах, поэтому ее рекомендуется заменять более новой библиотекой FreeGLUT.

Сборка:

2.2.1. Скачиваем последнюю версию исходников библиотеки GLUT, на момент написания статьи это 3.7.6: glut-3.7.6-src.zip

2.2.2. Распаковываем архив в папку “C:\Qt\build\GLUT”, исходники библиотеки должны быть в папке “C:\Qt\build\GLUT\glut-3.7.6”.

2.2.3. Открываем файл “C:\Qt\build\GLUT\glut-3.7.6\include\GL\glut.h” и добавляем после #if defined(_WIN32) (в строку #12) такие строки:

#ifdef __MINGW32__
#define APIENTRY __stdcall
#define CALLBACK __stdcall
#endif

затем сохраняем файл.

2.2.4. Открываем файл “C:\Qt\build\GLUT\glut-3.7.6\lib\glut\win32_winproc.c” и комментируем строчку #21:

//#include

2.2.5. Открываем файл “C:\Qt\build\GLUT\glut-3.7.6\lib\glut\win32_util.c” и редактируем функцию int gettimeofday(struct timeval* tp, void* tzp) следующим образом:

Смотрим условие if (QueryPerformanceCounter(&t)) (строка #35) и заменяем его тело на:

LARGE_INTEGER f;
double t_over_f;
QueryPerformanceFrequency(&f);
tp->tv_sec = t.QuadPart/f.QuadPart;
t_over_f = ((double)t.QuadPart/f.QuadPart);
tp->tv_usec = (t_over_f - tp->tv_sec)*1000*1000;

Это нам даст нормальную работу функции glutTimerFunc() в системах Windows Vista, 7 и 8.

2.2.6. Скачиваем Makefile, созданный мной специально для сборки библиотеки GLUT, и переносим его в папку “C:\Qt\build\GLUT\glut-3.7.6”.

2.2.7. Компилируем и устанавливаем библиотеку:

Запускаем “C:\Qt\MinGW\msys\1.0\msys.bat” и набираем в консольном окне такие команды:

cd /c/Qt/build/GLUT/glut-3.7.6
make
make install

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

Динамическая “glut32.dll” в “C:\Qt\MinGW\bin”

Статическая “libglut32.a” в “C:\Qt\MinGW\lib”

Хэдер “glut.h” в “C:\Qt\MinGW\include\GL”

Архив исходников glut-3.7.6_edit.7z, если вам лень самим добавлять изменения, нужно просто распаковать этот архив в папку “C:\Qt\build\GLUT”, и выполнить действия пункта 2.2.7. В архиве уже применены фиксы, описанные в пунктах выше.

2.2.9. Компиляция и запуск демо-кода.

2.2.9.1. Создаем файл “oldglutdemo.c” в папке “C:\Qt\build\GLUT”, вставляем в него такое содержимое:

#include

void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0f, 0.0f, 0.0f);
glBegin(GL_QUADS);
glVertex2f(-0.5, 0.5);
glVertex2f(0.5, 0.5);
glVertex2f(0.5, -0.5);
glVertex2f(-0.5, -0.5);
glEnd();
glFlush();
}

int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutCreateWindow("Demo");
glutDisplayFunc(display);
glutMainLoop();
return 0;
}

и сохраняем.

2.2.9.2. Для компиляции и запуска кода запускаем “C:\Qt\MinGW\msys\1.0\msys.bat” и набираем в консольном окне такие команды:

cd /c/Qt/build/GLUT
gcc -mwindows oldglutdemo.c -o oldglutdemo -lopengl32 -lglut32
./oldglutdemo.exe

Приложение “oldglutdemo.exe” создаст окно с красным квадратом по центру:



<< Перейти к содержанию

http://exlmoto.ru/mingw-development-environment/

команды, svn, утилита, windows, msys, mingw, gcc, консоль, coding

Previous post Next post
Up