SVN хранилище / компилиране / среди
- Forums:
Проектът, който ще разработваме на курса, е много-платформен и може да се компилира под Windows, Linux и Mac OS X
EDIT: ако се сблъсквате с проблеми от вида, че ви липсва "cxxptl.h" или "libcxxptl.lib", прочетете темата за Компилиране с cxxptl / настройки / среди.
::Windows::
:::Visual Studio:::
- От http://libsdl.org си изтеглете подходящата development версия на библиотеката. Трябва ви SDL-devel-1.2.xx-VC6.zip ако ползвате Visual Studio 2002/2003 или SDL-devel-1.2.xx-VC8.zip, ако ползвате Visual Studio 2005/2008 или по-ново. Разархивирайте си библиотеката в някоя временна директория.
- Създайте си SDK (от "Software Development Kit") директория някъде по вашата машина (няма значение къде). В нея създайте празна поддиректория SDL. Вземете header (*.h) файловете на SDL от разархивирания zip (намират се във SDL-1.2.xx\include\) и ги копирайте в SDL поддиректорията на вашата SDK директория.
- Създайте виртуално устройство K:, което да сочи към SDK директорията ви. Това става от командния промпт, чрез командата "subst K: <път>" (за проблеми със subst - вижте тук). Например, ако сте си избрали за SDK директория C:\develop\SDK, то въведете в конзолата
subst K: C:\develop\SDK
За да не въвеждате тази команда при всяко стартиране на Windows, можете за удобство да си я вкарате във .BAT файл.
След стъпки 2 и 3 трябва да виждате файла K:\SDL\SDL.h. Ако той не е там, прегледайте да не сте объркали някоя от стъпките! - Изтеглете си сорс-кода на проекта от SVN хранилището. За целта ви трябва SVN клиент - ако нямате, препоръчваме ви TortoiseSVN (http://tortoisesvn.tigris.org/).
Насочете SVN клиента да изтегли проекта от следния път:svn://anrieff.no-ip.org/retrace
(този линк не е за web-browser; чрез Windows explorer се навигирайте в директорията, където искате да изтеглите проекта, и някъде в свободното поле на explorer дайте десен бутон на мишката->SVN Checkout. Там ще ви пита вече за линка).
- В новата директория retrace копирайте от SDL архива съдържанието на SDL-1.2.xx\lib, в директорията на проекта. Т.е. накрая трябва да виждате нещо от вида: път_по_ваш_избор\retrace\SDL.lib и подобно за SDLmain.lib и SDL.dll
- Doubleclick върху retrace.dsp файла в изтеглената директория. Visual Studio ще ви попита дали искате да конвертирате проектите. Отговорете с "да". След тази стъпка трябва да имате успешно компилиращ се проект!
- От Tools->Check for updates/packages избирате за devpak server "devpaks.org Community Devpaks" и дайте "Check for updates"
- От появилия се лист с пакети изберете SDL (1.2.12 е OK) и го инсталирайте
- Свалете си сорс-кода на проекта от SVN хранилището (виж точка 4 по-горе)
- От Dev-CPP цъкнете "Open Project or File" и изберете retrace.dev файла. Dev-Cpp ще ви зареди проекта. Компилирайте проекта с Ctrl-F9 (първия път ще ви се оплаче за липсващи ресурси, но по-нататък няма проблем).
- Изтеглете си Code::Blocks с интегриран mingw32 компилатор (например, codeblocks-10.05mingw-setup.exe).
- От download страницата на libsdl си изтеглете development версия на библиотеката за mingw32.
- Създайте си виртурално устройство K:, по аналогия със стъпките за Visual Studio.
- Изтегленият .tar.gz с SDL копирайте в K: и разархивирайте на място ("Extract here..."). Преименувайте директорията, която ще се появи (SDL-1.2.xx) на "SDL-mingw32". В резултат трябва да имате К:\SDL-mingw32\include и прочее директории.
- От Code::Blocks, отворете retrace.cbp файла. Проектът би следвало да се компилира без проблеми.
- Уверете се, че имате инсталирани development пакетите за SDL (обикновено се казват SDL-devel, SDL-dev или нещо подобно, в зависимост от дистрибуцията ви), subversion клиента, gcc c++ компилатор, и GNU autotools пакета (autoconf, automake, m4 и make). При повечето дистрибуции, последните три обикновено са инсталирани по подразбиране.
- Изтеглете си сорс-кода на проекта от SVN хранилището. Чрез command-line клиента, това става по следния начин:
svn co svn://anrieff.no-ip.org/retrace
(разбира се, можете да ползвате и произволен GUI клиент; KDESVN не е лош избор)
- Отворете kdevelop, и от project->open project изберете retrace.kdevelop. При опит да компилирате, ще ви пита дали искате да регенерира Makefile-овете - отговорете с "да".
:::Dev-CPP:::
:::Code::Blocks:::
Тези инструкции са само за Code::Blocks под Windows!
::Linux::
:::KDevelop:::
:::Command-line only:::
Ако не ползвате kdevelop, можете да компилирате проекта от командния ред. Вместо стъпка 3, отворете терминал, навигирайте се до директорията на проекта (retrace) и напишете следните команди:
autoreconf --install
./configure
make
Това ще компилира проекта, като ще създаде двоичен изпълним файл src/retrace
::Mac OS X::
:::Xcode:::
Инсталирайте си SDL-1.2.xx.dmg пакета, и (по желание) SDL-devel-1.2.xx-extras.dmg. Създайте си ново SDL приложение чрез XCode. След което, към така получения проект, добавете .cpp/.h файловете на retrace.
:::Command-line:::
Инсталирайте си SDL чрез source code пакета - SDL-1.2.xx.tar.gz. За целта, разархивирайте tar.gz архива, и от командния ред, намирайки се в разархивираната директория, напишете
./configure
make
sudo make install
Оттук нататък стъпките са аналогични с command-line инструкциите под Linux.
Comments
Ubuntu packages
В Убунту(т.е. Дебиан) пакетът за SDL се казва "libsdl1.2-dev"
Пакетът за g++, make и т.н. е "build_essential"
Autoreconf: "autoconf"
Subversion си е просто "subversion"
MAC OS X
В MAC OS X не ми се получи проекта. Като създам нов SDL Application, се създава и някакъв main.c, който след това не мога да заместя. В смисъл като го разкарам и сложа main.cpp от проекта се оплаква, че не може да намери "_main" символ. А в .срр има main функция. Някой може ли да помогне малко? Четох, че се получава, когато нещо (main) не отговаря на ... типа на проекта.
Ами следното нещо пробвах
Ами следното нещо пробвах преди малко под Leopard и Xcode 3.1.
Копирах си от SDL-devel-extras пакета трите темплейта за SDL, и ги сложих в "/Library/Application Support/Developer/Shared/Xcode/Project Templates/Application". Ползвах темплейтите за Leopard, но надали има значение ако са други. Създадох с Xcode нов "SDL application", в който беше включено по подразбиране main.c, както споменаваш.
Размаркирах го да не се build-ва (не съм го трил, само му махнах checkbox-чето), и след което добавих всичките .cpp и .h файлове на fmiray. Оттук насетне всичко се компилира без проблеми.
Проблемът ти може да е възникнал, ако си променял нещо от fmiray кода. Конкретно за OSX, жизненоважно е:
1) main.cpp файла да #include-ва
2) main() функцията да е от вида
int main(int argc, char** argv);
(други дефиниции, например "int main(void)", не работят).
Ако все още не можеш да се справиш, пробвай command-line инструкциите, те работят безотказно :)
Проблеми с тегленето.
Използвам Dev-cpp. Следвах указанията, свалих и инсталирах TortoiseSVN, отидох на дадения svn адрес (svn://anrieff.no-ip.org/fmiray), но от там не мога да изтегля файловете (или поне не знам как). Малко помощ?
Адресът не е за web browser,
Адресът не е за web browser, използвайте TortoiseSVN за да свалите сорскода:
1. Отворете Windows Explorer и отидете в някаква директория, където искате да изтеглите проекта
2. Натиснете десен бутон някъде в свободното поле на explorer за да извадите контекстното меню.
3. Изберете "SVN checkout..." от него
4. В диалога, който ще се появи, в полето "URL of repository", въведете "svn://anrieff.no-ip.org/fmiray". Останалите неща оставете както са си.
Стана, мерси много.
Стана, мерси много. Но трябваше малко по-добре да обясните в упътването, че там не е много ясно какво да се прави след като се изтегли програмата.
Значи имам някакъв странен
Значи имам някакъв странен проблем. Правя всичко по стъпките както е ( за Visual Studio) и като пробвам да build-на нещо ми изкарва "1>c:\fmiray\src\main.cpp(20) : fatal error C1083: Cannot open include file: 'SDL/SDL.h': No such file or directory". Добавих си К:\ към PATHS и отново не ми стига до хедър файловете. Моля за малко помощ! :)
А като отидеш на устройство
А като отидеш на устройство K:, виждаш ли директория SDL? И вътре в нея SDL хедърите (SDL.h, SDL_video.h и прочее)?
оправих го това. Аз ви пратих
оправих го това. Аз ви пратих домашното на пощата ама не ми отговорихте нещо! :)
Довечера ще ги проверим
Довечера ще ги проверим всички и ще ви пратим резултати.
Иначе всичко е пристигнало, не се притеснявайте :)
Благодаря за отговора!
Благодаря за отговора! Извинявам се за нетърпението! :)
Имам проблеми с компилацията
Имам проблеми с компилацията на последната версия.
Error 1 fatal error LNK1104: cannot open file '.\SDL.lib' fmiray fmiray
Само при мен ли е проблема?
Трябва да си копираш SDL.lib,
Трябва да си копираш SDL.lib, SDLmain.lib и SDL.dll от архива със самия SDL в директорията на fmiray проекта. Т.е. от lib/ поддиректорията на разархивирания SDL-devel-xxx.zip във fmiray/
Причината да не разпространяваме тези файлове със самото SVN е, че са различни за различните версии на Visual C++.
Благодаря!
Благодаря!
Поддържа ли се MS VC++ 6.0 ?
Знам, че питам доста късно, но след пет неуспешни опита когато започна курсът, се отказах да правя повече. Днес се захванах отново, защото едва ли ще науча същността на raytracing-а само от лекциите - без писане не става. Правя всичко както сте си го описали стъпка по стъпка, но пак безуспешно.
(на стъпка едно дърпам SDL-1.2.14 , която е предназначена именно за VC++ 6.0 и останалото си го върша точно). На стъпка 6. когато стартирам .dsp файла ми се изписва това съобщение:
A corresponding workspace 'C:\Documents and Settings\Admin\Desktop\fmiray\fmiray.dsw' has been found and will be opened instead of the specified project C:\Documents and Settings\Admin\Desktop\fmiray\fmiray.dsp'.
Note:If you wish to create a workspace containing only the specified project, you can do so by creating a blank workspace with the Workspaces tab on the New dialog and then adding the project to that workspace using Insert Project into Workspace. (ОК / Cancel)
което е без начение, защото и в двата случая (т.е. ако съм си създал предварително workspace-а)
Като тръгна да компилирам ми изписва: cannot compile the file 'C:\Documents and Settings\Admin\Desktop\fmiray\src\geometry.h'; no compile tool is associated with the file extension (OK)
С Windows XP съм.
Ти с кое visual studio
Ти с кое visual studio си?
Можеш да пробваш да затриеш .dsw файла и да почнеш начисто като отвориш .dsp-то.
Отоговор
1. Както в предишния си пост споменах - с Microsoft Visual C++ 6.0 съм.
2. Като отворя .dsp-то ме пита авоматично дали искам да продължа като създаде нов .dsw или искам да си създам собствен workspace и да го включа. И в двата случая ми дава проблем с компилирането: когато съм на main.cpp и компилирам, ми изписва, че имам 12 грешки
примери:
не разрешава в geometry.h да присвояваме стойност static const int MAX_INTERSECTIONS = 64;
min() и max() не ги вижда, а е включен заглавният файл algorithm.h ...
Освен това като слагам в fmiray папката 3-те файла: SDL.dll, SDL.lib и SDLmain.lib ми ги оцветява с въпросителна в синьо кръгче - това проблем ли е?
Това обяснява проблемите.
Това обяснява проблемите. Visual C++ 6.0 не го поддържаме (по няколко причини, най-важната от които е, че компилатора ползва остаряла версия на стандарта, и нашия код не работи, както си забелязал). Препоръчвам ти да си изтеглиш някой по-нов компилатор (поне Visual Studio 2003), например има безплатен Visual C++ express edition 2008.
По втория въпрос, причините за компилационните грешки са именно заради компилатора.
По третия въпрос, да, нормално е. Така SVN обозначава, че тези файлове не са добавени в source control системата.
-
Благодаря за отговорите.
Дано всичко тръгне нормално вече.
> Това обяснява проблемите.
> Това обяснява проблемите. Visual C++ 6.0 не го поддържаме
Което е странно, от една страна, защото проектите в svn са именно за VC 6.
От друга, в живота има и по-странни неща =-)
-
Всичко тръгна супер на Visual Studio 2008 - искам да споделя, че в началото ми даваше грешки заради динамичната библиотека, но след като промених от настройките Project-> fmiray Properties...-> Configuration Properties -> C/C++ -> Code Generation -> Runtime Library на Multi-threaded Debug DLL (/MDd) всичко се оправи (дава само предупреждения, но за щастие няма грешки)