Oryginalna strona colobot.cba.pl umarła, gdy cba.pl przestało oferować darmowy hosting. To jest statyczny mirror, pobrany w 2018. ~krzys_h
 Polski Portal COLOBOTa - COLOBOT Polish Portal
Forum - Polski Portal COLOBOTa
Strona głównaStrona główna UżytkownicyUżytkownicy GrupyGrupy StatystykiStatystyki


Poprzedni temat «» Następny temat
[Poradnik] Jak skompilować kod?
Autor Wiadomość
Programerus 
Jestem Bogiem


Pomógł: 2 razy
Wiek: 22
Dołączył: 28 Mar 2009
Posty: 188
Skąd: Kołobrzeg
Wysłany: 08-03-2012, 23:34   [Poradnik] Jak skompilować kod?

Bez zbędnych wstępów:

1. Pobieramy i instalujemy Microsoft Visual C++ 6 (linka nie podaję, jest na torrentach).
2. Pobieramy i instalujemy DirectX 8 SDK (Link).
3. Pobieramy lekko zmodyfikowane 2 pliki z kodem (Link).
4. Otwieramy projekt.
5. Wchodzimy w Project -> Settings.
6. W zakładce Link zmieniamy zmieniamy umiejscowienie bibliotek DirectX tam gdzie je zainstalowaliśmy.
7. Wchodzimy w Tools -> Options.
8. W zakładce Directories dopisujemy folder, w którym są include oraz library DX SDK które zainstalowaliśmy i przerzucamy je na samą górę (tak, aby najpierw sprawdzało te foldery).
9. Kompilujemy.
10. Odpalamy przez debuggera(Ctrl+F5).
11. Cieszymy się własnoręcznie skompilowanym Colobotem :)

Mam nadzieję, że pomogłem wielu osobom, które miały problem z kompilacją, a także że ten poradnik jest wystarczająco czytelny i zrozumiały. :)

Jeśli macie jakieś dalsze problemy z kompilacją, bądź pytania piszcie w temacie, postaram się pomóc.
_________________
"Tylko bogaci mogą mówić mi, że pieniądz nie daje szczęścia"
Ostatnio zmieniony przez Programerus 09-03-2012, 20:08, w całości zmieniany 1 raz  
 
 
     
Raptor 
Clever Girl


Twoja ulubiona misja: Raptorowanie
Pomógł: 4 razy
Wiek: 24
Dołączył: 26 Cze 2010
Posty: 432
Skąd: Isla Nublar
Wysłany: 09-03-2012, 19:29   

Poradnik dobry. Jednak, chłopcy, postąpiłem wg niego i wyszło mi coś takiego:
Kod:
--------------------Configuration: projet1 - Win32 Release--------------------
Compiling resources...
Compiling...
auto.cpp
autobase.cpp
autoconvert.cpp
autoderrick.cpp
autodestroyer.cpp
autoegg.cpp
autoenergy.cpp
autofactory.cpp
autoflag.cpp
autohuston.cpp
autoinfo.cpp
autojostle.cpp
autokid.cpp
autolabo.cpp
automush.cpp
autonest.cpp
autonuclear.cpp
autopara.cpp
autoportico.cpp
autoradar.cpp
autorepair.cpp
autoresearch.cpp
autoroot.cpp
autosafe.cpp
autostation.cpp
autotower.cpp
blitz.cpp
brain.cpp
button.cpp
camera.cpp
cbottoken.cpp
check.cpp
cloud.cpp
cmdtoken.cpp
color.cpp
compass.cpp
control.cpp
d3dapp.cpp
C:\Program Files\Microsoft DirectX 8.1 SDK\include\dinput.h: DIRECTINPUT_VERSION undefined. Defaulting to version 0x0800
d3dengine.cpp
d3denum.cpp
d3dframe.cpp
d3dmath.cpp
d3dtextr.cpp
d3dutil.cpp
displayinfo.cpp
displaytext.cpp
edit.cpp
editvalue.cpp
event.cpp
gauge.cpp
group.cpp
image.cpp
iman.cpp
interface.cpp
joystick.cpp
key.cpp
label.cpp
light.cpp
list.cpp
maindialog.cpp
mainmap.cpp
mainmovie.cpp
D:\Z Robota\HardWork\mainmap.cpp(201) : warning C4700: local variable 'pw' used without having been initialized
mainshort.cpp
map.cpp
math3d.cpp
metafile.cpp
misc.cpp
model.cpp
modfile.cpp
motion.cpp
motionant.cpp
motionbee.cpp
motionhuman.cpp
motionmother.cpp
motionspider.cpp
motiontoto.cpp
motionvehicle.cpp
motionworm.cpp
object.cpp
particule.cpp
physics.cpp
planet.cpp
profile.cpp
pyro.cpp
restext.cpp
robotmain.cpp
script.cpp
scroll.cpp
D:\Z Robota\HardWork\script.cpp(1500) : warning C4700: local variable 'iAngle' used without having been initialized
shortcut.cpp
slider.cpp
sound.cpp
studio.cpp
target.cpp
task.cpp
taskadvance.cpp
taskbuild.cpp
taskfire.cpp
taskfireant.cpp
taskflag.cpp
taskgoto.cpp
taskgungoal.cpp
taskinfo.cpp
taskmanager.cpp
taskmanip.cpp
taskpen.cpp
taskrecover.cpp
taskreset.cpp
tasksearch.cpp
taskshield.cpp
taskspiderexplo.cpp
tasktake.cpp
taskterraform.cpp
taskturn.cpp
taskwait.cpp
terrain.cpp
text.cpp
water.cpp
window.cpp
Linking...
LINK : fatal error LNK1181: cannot open input file "C:\Program.obj"
Error executing link.exe.

projet1.exe - 1 error(s), 2 warning(s)

O co chodzi z plikiem "Program.obj"? I czy te dwa ostrzeżenia to normalne?
_________________
- Stężenie czekolady we krwi: 93‰
- Ja to bym zjadł jeszcze batona...


 
     
Programerus 
Jestem Bogiem


Pomógł: 2 razy
Wiek: 22
Dołączył: 28 Mar 2009
Posty: 188
Skąd: Kołobrzeg
Wysłany: 09-03-2012, 20:07   

Te dwa ostrzeżenia są normalne, co do tego drugiego masz chyba coś źle ustawione, bo nie powinno wyszukiwać takiego pliku jak program.obj
_________________
"Tylko bogaci mogą mówić mi, że pieniądz nie daje szczęścia"
 
 
     
Raptor 
Clever Girl


Twoja ulubiona misja: Raptorowanie
Pomógł: 4 razy
Wiek: 24
Dołączył: 26 Cze 2010
Posty: 432
Skąd: Isla Nublar
Wysłany: 10-03-2012, 13:30   

Udało mi się. Zamiast tak:
WielkiBrat napisał/a:
5. Wchodzimy w Project -> Settings.
6. W zakładce Link zmieniamy zmieniamy umiejscowienie bibliotek DirectX tam gdzie je zainstalowaliśmy.

Po prostu umieściłem wszystkie te pliki do standardowego katalogu, który był już zdefiniowany w projekcie: "c:\dx7sdk\lib".

Tylko te pliki są potrzebne:
Kod:
d3dx.lib
ddraw.lib
dinput.lib
dsound.lib
dxguid.lib

Ciekawe, co by było, gdyby skompilować z nowszą wersją Microsoft DirectX SDK, np. 9.0c. Może wydajność by skoczyła? Wiem co mówię. Mam stare maszyny i kilka gier z tamtych lat. Niektóre posiadają lepszą grafikę i efekty niż CoLoBoT i działają nawet płynniej, niż CoLoBoT z pełnymi detalami w rozdzielczości choćby 800x600 z wieloma obiektami na mapie.

Kod:
--------------------Configuration: projet1 - Win32 Release--------------------
Compiling resources...
Compiling...
auto.cpp
autobase.cpp
autoconvert.cpp
autoderrick.cpp
autodestroyer.cpp
autoegg.cpp
autoenergy.cpp
autofactory.cpp
autoflag.cpp
autohuston.cpp
autoinfo.cpp
autojostle.cpp
autokid.cpp
autolabo.cpp
automush.cpp
autonest.cpp
autonuclear.cpp
autopara.cpp
autoportico.cpp
autoradar.cpp
autorepair.cpp
autoresearch.cpp
autoroot.cpp
autosafe.cpp
autostation.cpp
autotower.cpp
blitz.cpp
brain.cpp
button.cpp
camera.cpp
cbottoken.cpp
check.cpp
cloud.cpp
cmdtoken.cpp
color.cpp
compass.cpp
control.cpp
d3dapp.cpp
C:\Program Files\Microsoft DirectX 8.1 SDK\include\dinput.h: DIRECTINPUT_VERSION undefined. Defaulting to version 0x0800
d3dengine.cpp
d3denum.cpp
d3dframe.cpp
d3dmath.cpp
d3dtextr.cpp
d3dutil.cpp
displayinfo.cpp
displaytext.cpp
edit.cpp
editvalue.cpp
event.cpp
gauge.cpp
group.cpp
image.cpp
iman.cpp
interface.cpp
joystick.cpp
key.cpp
label.cpp
light.cpp
list.cpp
maindialog.cpp
mainmap.cpp
mainmovie.cpp
D:\Z Robota\HardWork\mainmap.cpp(201) : warning C4700: local variable 'pw' used without having been initialized
mainshort.cpp
map.cpp
math3d.cpp
metafile.cpp
misc.cpp
model.cpp
modfile.cpp
motion.cpp
motionant.cpp
motionbee.cpp
motionhuman.cpp
motionmother.cpp
motionspider.cpp
motiontoto.cpp
motionvehicle.cpp
motionworm.cpp
object.cpp
particule.cpp
physics.cpp
planet.cpp
profile.cpp
pyro.cpp
restext.cpp
robotmain.cpp
script.cpp
scroll.cpp
D:\Z Robota\HardWork\script.cpp(1500) : warning C4700: local variable 'iAngle' used without having been initialized
shortcut.cpp
slider.cpp
sound.cpp
studio.cpp
target.cpp
task.cpp
taskadvance.cpp
taskbuild.cpp
taskfire.cpp
taskfireant.cpp
taskflag.cpp
taskgoto.cpp
taskgungoal.cpp
taskinfo.cpp
taskmanager.cpp
taskmanip.cpp
taskpen.cpp
taskrecover.cpp
taskreset.cpp
tasksearch.cpp
taskshield.cpp
taskspiderexplo.cpp
tasktake.cpp
taskterraform.cpp
taskturn.cpp
taskwait.cpp
terrain.cpp
text.cpp
water.cpp
window.cpp
Linking...

projet1.exe - 0 error(s), 2 warning(s)
_________________
- Stężenie czekolady we krwi: 93‰
- Ja to bym zjadł jeszcze batona...


 
     
cyklopek11


Dołączył: 01 Kwi 2008
Posty: 25
Wysłany: 13-03-2012, 17:48   

Witam wszystkich. Kompiluje kod wg wskazówek, odpalam ctrl + F5 i wyskakuje mi abym włożył płytę??? W kodzie źródłowym nic na razie nie grzebałem ? Jak to uruchomić?
 
     
Raptor 
Clever Girl


Twoja ulubiona misja: Raptorowanie
Pomógł: 4 razy
Wiek: 24
Dołączył: 26 Cze 2010
Posty: 432
Skąd: Isla Nublar
Wysłany: 13-03-2012, 17:54   

cyklopek11 napisał/a:
Witam wszystkich. Kompiluje kod wg wskazówek, odpalam ctrl + F5 i wyskakuje mi abym włożył płytę??? W kodzie źródłowym nic na razie nie grzebałem ? Jak to uruchomić?

Jest to standardowe ustawienie w pliku "language.h". Da się skompilować CoLoBoT'a do wersji niewymagającej instalacji/płyty instalacyjnej. BTW: Musimy popracować nad dokumentacją tych ustawień z tego pliku. Jest masa kombinacji związanych ze wszystkimi CeeBot'ami i CoLoBoT'ami.

[ Dodano: 13-03-2012, 17:58 ]
Już mam:

W pliku "language.h" jest linia:
Kod:
#define _NET

Trzeba zamienić jej wartość z FALSE na TRUE i powinno startować.
_________________
- Stężenie czekolady we krwi: 93‰
- Ja to bym zjadł jeszcze batona...


 
     
cyklopek11


Dołączył: 01 Kwi 2008
Posty: 25
Wysłany: 13-03-2012, 19:05   

Niestety nie działa! Skompilowane w trybie DEMO powoduje powstanie okienka i pożera 50% mocy procesora i tak już wisi. Czy komuś udało się w ogóle uruchomić to po kompilacji ???
 
     
Programerus 
Jestem Bogiem


Pomógł: 2 razy
Wiek: 22
Dołączył: 28 Mar 2009
Posty: 188
Skąd: Kołobrzeg
Wysłany: 13-03-2012, 19:15   

Tak, bezproblemowo. Nie modyfikowałem niczego w language.h
_________________
"Tylko bogaci mogą mówić mi, że pieniądz nie daje szczęścia"
 
 
     
cyklopek11


Dołączył: 01 Kwi 2008
Posty: 25
Wysłany: 13-03-2012, 19:20   

Ja też nie i wyskakuje mi włóż płytę :cry:
 
     
Raptor 
Clever Girl


Twoja ulubiona misja: Raptorowanie
Pomógł: 4 razy
Wiek: 24
Dołączył: 26 Cze 2010
Posty: 432
Skąd: Isla Nublar
Wysłany: 13-03-2012, 19:30   

Programerus napisał/a:
Tak, bezproblemowo. Nie modyfikowałem niczego w language.h

Bo masz widocznie zainstalowanego CoLoBoT'a i masz stosowną wartość w rejestrze. Ja zawsze korzystam z mojej wersji portable'owej i nie mam oficjalnie zainstalowanego w systemie. Dlatego pewnie mnie też wyskakiwał ten sam błąd, co cyklopkowi.
_________________
- Stężenie czekolady we krwi: 93‰
- Ja to bym zjadł jeszcze batona...


 
     
musznik 


Wiek: 32
Dołączył: 15 Mar 2011
Posty: 4
Skąd: nieJestemBotem
Wysłany: 13-03-2012, 22:20   

Co do problemu z włożeniem płyty to w pliku d3dapp.cpp w funkcji Error CD3DApplication::RegQuery() jako pierwszą linijka kodu, dodać - return ERR_OK;

dodam że bezproblemowo skompilowałem kod pod Visual Studio 2010, a błąd którym sypało na lewo i prawo wyeliminowałem dopisując gdzieś "#define POINTER_64" - w którym pliku, nie pamiętam, ale w logach będzie wiadomo ;)

ps. po kompilacji grafa się krzaczy, i nic nie widać - pracuje nad tym
 
 
     
Programerus 
Jestem Bogiem


Pomógł: 2 razy
Wiek: 22
Dołączył: 28 Mar 2009
Posty: 188
Skąd: Kołobrzeg
Wysłany: 13-03-2012, 22:27   

Musznik, jak Ci się grafa krzaczy to zmień w ustawieniach grafiki urządzenie.
_________________
"Tylko bogaci mogą mówić mi, że pieniądz nie daje szczęścia"
 
 
     
Raptor 
Clever Girl


Twoja ulubiona misja: Raptorowanie
Pomógł: 4 razy
Wiek: 24
Dołączył: 26 Cze 2010
Posty: 432
Skąd: Isla Nublar
Wysłany: 13-03-2012, 22:35   

musznik napisał/a:
ps. po kompilacji grafa się krzaczy, i nic nie widać - pracuje nad tym

Może chodzi o nieprawidłowe pliki colobot#.dat? Umieść gotową binarkę do katalogu ze swoim oryginalnym CoLoBoT'em albo zbuduj przy pomocy skryptów BAT aMakeList*.bat właściwe pliki colobot#.dat. Skrypty te są w źródle, w katalogach kolejno textures dla colobot1.dat, objects dla colobot2.dat i sound dla colobot3.dat.
_________________
- Stężenie czekolady we krwi: 93‰
- Ja to bym zjadł jeszcze batona...


 
     
cyklopek11


Dołączył: 01 Kwi 2008
Posty: 25
Wysłany: 13-03-2012, 23:52   

Jak masz problemy z grafą to może to być wina colobot1.dat. Weź ostateczną polską wersję z katalogu polish/polish4.zip . Problem powinien zniknąć.

[ Dodano: 14-03-2012, 12:26 ]
Myślę, że dobrze byłoby aby każdy z nas zabrał się za jeden plik źródłowy (.cpp)
- przetłumaczył oryginalne komentarze wraz ze zrozumieniem
- "wgryzł" się w kod, dopisał własne komentarze, spisał i opisał (tak jak zrozumiał z kodu) zmienne i funkcje z danej klasy. Taki Help. Wiem, że teraz każdy rzucił się od razu na wszystkie pliki źródłowe (ja też), chce wcielać w życie elementy których mu zabrakło w oryginalnym colobocie.
 
     
JockX
Gość


Wysłany: 14-03-2012, 22:00   Dodatkowe instrukcje?

Mam 3 pytana. Po pierwsze, jak postępować aby skompilować program na współczesnych kompilatorach? Instrukcja z pierwszego postu zgadza się dla Visual Studio 6, ale jak zrobić to na Visual C++ 2010 Expres lub Code::Blocks? Ten pierwszy marudzi, że nie może otworzyć pliku projektu (Project upgrade failed.), a ten drugi przy buildowaniu sypie błędami:
Kod:
E:\inne\DXSDK\include\d3dtypes.h|1096|error: redefinition of 'D3DVT_FORCE_DWORD'|
E:\inne\DXSDK\include\d3dtypes.h|1095|error: 'D3DVT_FORCE_DWORD' previously defined here|
E:\Downloads\ceebot\Robot\projet1\D3DApp.h|23|error: use of enum 'D3DMouse' without previous declaration|
...oraz ponad 20 innych, podobnych.

Drugie pytanie: Po skompilowaniu w VS6 gra uruchamia się. Po wyedytowaniu w language.h:
Kod:
#define _FRENCH            FALSE
#define _ENGLISH        TRUE
nawet po angielsku, jednak pliki z pomocami, mission obcjectives itp. są nadal po francusku. Co i gdzie powinienem podmienić? Widzę w paczce także polskie wersje, ale nie bardzo orientuję się, co gdzie powinno wylądować.

No i ostatnie pytanie: Jakie kroki należy wykonać, aby przygotować katalog z którego można przeprowadzić zwykłą instalację? To co jest w katalogu projet1/install uruchamia się, ale nie może skopiować żadnego pliku, więc wyrzuca podczas działania 500 błędów i kończy się :) , z kolei próba uruchomienia projet.exe poza VS6 kończy się wyświetleniem komunikatu o konieczności instalacji aplikacji.
 
     
Wyświetl posty z ostatnich:   
Nie możesz pisać nowych tematów
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum

Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Polski Portal COLOBOTa © 2008 - 2012