Kompilierprobleme

Ist deine Frage von technischer Natur, dann poste sie bitte in diesen Bereich
Crovax
Unteroffizier
Unteroffizier
Beiträge: 75
Registriert: Sonntag 1. November 2009, 14:28

Kompilierprobleme

Beitrag von Crovax » Sonntag 6. Dezember 2009, 23:39

Hab mir VS pro installiert und versucht bote32194 zu kompilieren.

Fehler gibt es bei den Header-Dateien aus Source/include, dass es dort fehlende Referenzen gibt. Die dortigen virtuellen Funktionen werden auch irgendwie nirgend implementiert.
Brauch man also noch weiteren Code? Und wenn, wo bekommt man den her?

Danke im voraus,
sany
1>------ Neues Erstellen gestartet: Projekt: botf2, Konfiguration: Debug Win32 ------
1>Die Zwischen- und Ausgabedateien für das Projekt "botf2" mit der Konfiguration "Debug|Win32" werden gelöscht.
1>Kompilieren...
1>StdAfx.cpp
1>Kompilieren...
1>botf2.cpp
1>botf2Doc.cpp
1>MainFrm.cpp
1>MultiSplitterView.cpp
1>MySplitterWnd.cpp
1>FontLoader.cpp
1>IniLoader.cpp
1>IOData.cpp
1>NetworkHandler.cpp
1>ResourceManager.cpp
1>SoundManager.cpp
1>GraphicPool.cpp
1>MyButton.cpp
1>OverlayBanner.cpp
1>BottomBaseView.cpp
1>DBScrollView.cpp
1>DiplomacyBottomView.cpp
1>DiplomacyMenuView.cpp
1>EmpireMenuView.cpp
1>EventMenuView.cpp
1>Code wird generiert...
1>Kompilieren...
1>FleetMenuView.cpp
1>GalaxyMenuView.cpp
1>IntelBottomView.cpp
1>IntelMenuView.cpp
1>MainBaseView.cpp
1>MenuChooseView.cpp
1>PlanetBottomView.cpp
1>ResearchBottomView.cpp
1>ResearchMenuView.cpp
1>ShipBottomView.cpp
1>ShipDesignBottomView.cpp
1>ShipDesignMenuView.cpp
1>SmallInfoView.cpp
1>SystemMenuView.cpp
1>TradeBottomView.cpp
1>TradeMenuView.cpp
1>TransportMenuView.cpp
1>EventBlockade.cpp
1>EventBombardment.cpp
1>EventColonization.cpp
1>Code wird generiert...
1>Kompilieren...
1>EventFirstContact.cpp
1>EventResearch.cpp
1>EventScreen.cpp
1>GenSectorName.cpp
1>Planet.cpp
1>ResourceRoute.cpp
1>Sector.cpp
1>Message.cpp
1>Statistics.cpp
1>DiplomacyIntelObj.cpp
1>EcoIntelObj.cpp
1>IntelAssignment.cpp
1>IntelCalc.cpp
1>IntelInfo.cpp
1>Intelligence.cpp
1>IntelObject.cpp
1>IntelReports.cpp
1>MilitaryIntelObj.cpp
1>ScienceIntelObj.cpp
1>DiplomacyController.cpp
1>Code wird generiert...
1>Kompilieren...
1>Empire.cpp
1>GenDiploMessage.cpp
1>Major.cpp
1>Minor.cpp
1>MoralObserver.cpp
1>Race.cpp
1>RaceController.cpp
1>RaceDesign.cpp
1>Research.cpp
1>ResearchComplex.cpp
1>ResearchInfo.cpp
1>Starmap.cpp
1>BeamWeapons.cpp
1>Combat.cpp
1>CombatShip.cpp
1>FireArc.cpp
1>Fleet.cpp
1>GenShipName.cpp
1>Hull.cpp
1>Shield.cpp
1>Code wird generiert...
1>Kompilieren...
1>Ship.cpp
1>ShipHistory.cpp
1>ShipInfo.cpp
1>Torpedo.cpp
1>TorpedoInfo.cpp
1>TorpedoWeapons.cpp
1>WeaponObserver.cpp
1>AssemblyList.cpp
1>AttackSystem.cpp
1>Building.cpp
1>BuildingInfo.cpp
1>GlobalBuildings.cpp
1>GlobalStorage.cpp
1>System.cpp
1>SystemProd.cpp
1>Worker.cpp
1>Trade.cpp
1>TradeHistory.cpp
1>TradeRoute.cpp
1>Troop.cpp
1>Code wird generiert...
1>Kompilieren...
1>TroopInfo.cpp
1>AIPrios.cpp
1>DiplomacyAI.cpp
1>IntelAI.cpp
1>MajorAI.cpp
1>MinorAI.cpp
1>SectorAI.cpp
1>ShipAI.cpp
1>SystemAI.cpp
1>ChatDlg.cpp
1>ChooseRacePage.cpp
1>MainDlg.cpp
1>NewGamePage.cpp
1>PlayGamePage.cpp
1>SearchServersDlg.cpp
1>Code wird generiert...
1>Ressourcen werden kompiliert...
1>Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
1>Copyright (C) Microsoft Corporation. All rights reserved.
1>Manifest in Ressourcen wird kompiliert...
1>Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
1>Copyright (C) Microsoft Corporation. All rights reserved.
1>Verknüpfen...
1>BotE_Network.lib(ChosenRaces.obj) : error LNK2001: Nicht aufgelöstes externes Symbol ""unsigned int (__stdcall* ATL::g_pfnGetThreadACP)(void)" (?g_pfnGetThreadACP@ATL@@3P6GIXZA)".
1>BotE_Network.lib(ChatMsg.obj) : error LNK2001: Nicht aufgelöstes externes Symbol ""unsigned int (__stdcall* ATL::g_pfnGetThreadACP)(void)" (?g_pfnGetThreadACP@ATL@@3P6GIXZA)".
1>BotE_Network.lib(ServerHandshake.obj) : error LNK2001: Nicht aufgelöstes externes Symbol ""unsigned int (__stdcall* ATL::g_pfnGetThreadACP)(void)" (?g_pfnGetThreadACP@ATL@@3P6GIXZA)".
1>BotE_Network.lib(LANMessage.obj) : error LNK2001: Nicht aufgelöstes externes Symbol ""unsigned int (__stdcall* ATL::g_pfnGetThreadACP)(void)" (?g_pfnGetThreadACP@ATL@@3P6GIXZA)".
1>BotE_Network.lib(BotEClient.obj) : error LNK2001: Nicht aufgelöstes externes Symbol ""unsigned int (__stdcall* ATL::g_pfnGetThreadACP)(void)" (?g_pfnGetThreadACP@ATL@@3P6GIXZA)".
1>BotE_Network.lib(BotEServer.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""unsigned int (__stdcall* ATL::g_pfnGetThreadACP)(void)" (?g_pfnGetThreadACP@ATL@@3P6GIXZA)" in Funktion ""public: virtual void __thiscall CList<class network::CServerListener *,class network::CServerListener * const &>::Serialize(class CArchive &)" (?Serialize@?$CList@PAVCServerListener@network@@ABQAV12@@@UAEXAAVCArchive@@@Z)".
1>BotE_Network.lib(LANServer.obj) : error LNK2001: Nicht aufgelöstes externes Symbol ""unsigned int (__stdcall* ATL::g_pfnGetThreadACP)(void)" (?g_pfnGetThreadACP@ATL@@3P6GIXZA)".
1>BotE_Network.lib(LANClient.obj) : error LNK2001: Nicht aufgelöstes externes Symbol ""unsigned int (__stdcall* ATL::g_pfnGetThreadACP)(void)" (?g_pfnGetThreadACP@ATL@@3P6GIXZA)".
1>.\Debug/BotE.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
1>Browseinformationsdatei wird erstellt...
1>Microsoft Browse Information Maintenance-Programm Version 9.00.21022
1>Copyright (C) Microsoft Corporation. All rights reserved.
1>Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\sany\Eigene Dateien\Downloads\bote-32194_my\BotE Game\trunk\Debug\BuildLog.htm" gespeichert.
1>botf2 - 9 Fehler, 0 Warnung(en)
========== Alles neu erstellen: 0 erfolgreich, Fehler bei 1, 0 übersprungen ==========

Benutzeravatar
Malle
Großadmiral
Großadmiral
Beiträge: 6947
Registriert: Montag 13. November 2006, 15:16

Re: Kompilierprobleme

Beitrag von Malle » Montag 7. Dezember 2009, 08:18

Der Netzwerkcode ist noch nicht hochgeladen. Bei der alten Alpha4 die ich mal kompiliert habe, gabs es da keine Probleme. Schau mal nach ob die Network libs im betreffenden Unterordner da sind. Kann mir nicht vorstellen dass puste sie vergessen hat.

P.S.: Crovax, was hatte denn dieser Post mit der Alpha5 Truppenanzeige zu tun? ;)

Crovax
Unteroffizier
Unteroffizier
Beiträge: 75
Registriert: Sonntag 1. November 2009, 14:28

Re: Kompilierprobleme

Beitrag von Crovax » Montag 7. Dezember 2009, 13:31

Die BotE_Network.lib liegt in der lib-debug und lib-release, wenn Du das meinst? Sind 2,45 und 1,94MiB groß. (in anderen releases ist es wohl andersrum).

Wenn ich sie austausche, kommt trotzdem der gleiche Fehler.
Die mfc90.lib, mfc90.dll, mfc90deu.dll und Atl.lib in die lib-debug kopieren bringt auch keine Verbesserung.

Benutzeravatar
Malle
Großadmiral
Großadmiral
Beiträge: 6947
Registriert: Montag 13. November 2006, 15:16

Re: Kompilierprobleme

Beitrag von Malle » Montag 7. Dezember 2009, 13:44

also bei mir geht es. Es kommen zwar 159 Warnungen, aber das Programm startet, wobei es ungefähr 10x langsamer ist als die kompilierte exe im Release und auch 10x größer von der Dateigröße her, aber es läuft. Du hast auf codeplex rechts "Download latest version" geklickt (Dateiname: bote-32194.zip)?

Ich hab die sln Datei in das 2008er Format konvertiert mit dem Assistenten.

Hab den buildlog hier hochgeladen: http://svn.star-trek-games.com/birth/BuildLog.htm

Crovax
Unteroffizier
Unteroffizier
Beiträge: 75
Registriert: Sonntag 1. November 2009, 14:28

Re: Kompilierprobleme

Beitrag von Crovax » Montag 7. Dezember 2009, 14:43

Hab auch gleich konvertiert, das möchte das Programm ja gleich machen und dauert nicht lang.

Wenn ich es einfach kompilieren möchte, wie es ist (ohne sonstige Einstellungen) kommt das beschriebene Problem. Kann hier *.htm leider nicht hochladen. ("Die Dateierweiterung htm ist nicht erlaubt.")

Mal ne Frage:
1. welche atl/mfc/sonstwas .lib/.pdb/.sonstwas muss in welches Verzeichnis?
2. Sollen die Einstellungen so bleiben:
-Verwendung von MFC: in einer statischen Bibliothek verwenden
-Verwendung von ATL: ATL wird nicht verwendet?

sany

Benutzeravatar
Malle
Großadmiral
Großadmiral
Beiträge: 6947
Registriert: Montag 13. November 2006, 15:16

Re: Kompilierprobleme

Beitrag von Malle » Montag 7. Dezember 2009, 14:52

Einstellungen müssen alle bleiben wie sie sind. Ich hab außer Konvertieren nichts verändert.

nicht-gangbare Dateiformate bitte zippen vor dem Anhängen.

..\Microsoft Visual Studio 9.0\VC\atlmfc\ ist der Ort wo sich die ATLMFC Dateien befinden müssen. Das muss in VS Pro aber schon so sein nach Installation, ansonsten ist was schiefgelaufen. Es gibt von der MFC mehrere Unterversionen, wir verwenden hier die 8er (MICROSOFT (R) FOUNDATION CLASSES Version 8.0 sagt die Readme.txt). Aufwärtskompatibel sind sie auf alle Fälle nicht, bei abwärts weiß ich nicht genau. Poste mal dein buildlog, dann sehen wir weiter.

Crovax
Unteroffizier
Unteroffizier
Beiträge: 75
Registriert: Sonntag 1. November 2009, 14:28

Re: Kompilierprobleme

Beitrag von Crovax » Montag 7. Dezember 2009, 14:59

buildlog im Anhanh.

unter VC\atlmfc\lib haben die meisten Bibliotheken eine 90 im Namen, Ausnahme ist mfcmifc80.dll.
Die haben doch nicht hier das erste Mal mit der heiligen Rückwärtskompatibilität gebrochen? :-)

EDIT:
es gab relativ viele readme.txt, aber:
MICROSOFT (R) FOUNDATION CLASSES
Version 9.0
Source Code ReadMe
Dateianhänge
BuildLog.zip
(4.97 KiB) 163-mal heruntergeladen
Zuletzt geändert von Crovax am Montag 7. Dezember 2009, 15:02, insgesamt 1-mal geändert.

Benutzeravatar
Malle
Großadmiral
Großadmiral
Beiträge: 6947
Registriert: Montag 13. November 2006, 15:16

Re: Kompilierprobleme

Beitrag von Malle » Montag 7. Dezember 2009, 15:02

sieht so aus. Bei mir hat alles 80, z.B. mfcm80u.lib etc.

Crovax
Unteroffizier
Unteroffizier
Beiträge: 75
Registriert: Sonntag 1. November 2009, 14:28

Re: Kompilierprobleme

Beitrag von Crovax » Montag 7. Dezember 2009, 18:33

Ich hab mir die MFC80 mal besorgt (VS 8.0 runtergeladen ;()

Jetzt gehts. Mit DEBUG war das Ergebnis 7Mb groß, lieferte 31 Warnings und war bei der Ausführung gefühlt langsamer.
Bei RELEASE etwa 2MB, keine Fehler und warnings und lief wohl normal schnell (ggf. etwas langsamer).
Selbst wenn ich die Parameter so einstelle, dass die Größe minimiert wird, sind es 1.7MB.

Das mit dem MFC80/90 nervt ein wenig, naja. Aber wie hat Pustekuchen es hinbekommen, dass der Code nur 750kb groß ist?! Klingt ja fast nach nem Intel-Compiler.

sany

Benutzeravatar
Malle
Großadmiral
Großadmiral
Beiträge: 6947
Registriert: Montag 13. November 2006, 15:16

Re: Kompilierprobleme

Beitrag von Malle » Montag 7. Dezember 2009, 19:27

nein, das ist irgendein Kompressor. Joker hat den mal in einem Forenbeitrag benannt, musst suchen.

Benutzeravatar
Sir Pustekuchen
Administrator
Administrator
Beiträge: 4181
Registriert: Dienstag 10. Januar 2006, 16:46
Kontaktdaten:

Re: Kompilierprobleme

Beitrag von Sir Pustekuchen » Montag 7. Dezember 2009, 20:13

Der Fehler ist ganz einfach zu erklären. Du hast das Visual Studio 2008 verwendet (also MFC 9.0) jedoch wurde die Netzwerk-Bibliothek in VS2005 (MFC 8.0) kompiliert. Beides müssen jedoch die gleichen Versionen sein, sofern man statische Libs nutzen will. Oder man muss irgendwas besonderes einstellen, was ich aber auch nicht weiß.

Als Lösung könntest du ganz einfach VS2005 nutzen, da klappts ohne Probleme. Mit dem nächsten Upload auf CodePlex habe ich BotE dann auch komplett auf VS2008 umgestellt. Dann sollte alles auf Anhieb funktionieren.

Die exe ist bei mir so klein, da ich sie nach dem Kompilieren mit dem UPX Packer packe.

botffan
Unteroffizier
Unteroffizier
Beiträge: 96
Registriert: Sonntag 15. Oktober 2006, 23:57

Re: Kompilierprobleme

Beitrag von botffan » Dienstag 8. Dezember 2009, 12:08

Als Lösung könntest du ganz einfach VS2005 nutzen, da klappts ohne Probleme. Mit dem nächsten Upload auf CodePlex habe ich BotE dann auch komplett auf VS2008 umgestellt. Dann sollte alles auf Anhieb funktionieren.
ähm, kannste schon abschätzen wann das währe, hab nähmlich das gleiche problem, komme aber an keine andere Version rann (VS2008).

Benutzeravatar
Sir Pustekuchen
Administrator
Administrator
Beiträge: 4181
Registriert: Dienstag 10. Januar 2006, 16:46
Kontaktdaten:

Re: Kompilierprobleme

Beitrag von Sir Pustekuchen » Mittwoch 9. Dezember 2009, 19:16

Mit dem nächsten Update. Ich kann aber nicht sagen wann es wird. Vielleicht zwischen Weihnachten und Neujahr. Derzeit bin ich im RL voll eingespannt und habe keine Zeit für BotE.

botffan
Unteroffizier
Unteroffizier
Beiträge: 96
Registriert: Sonntag 15. Oktober 2006, 23:57

Re: Kompilierprobleme

Beitrag von botffan » Donnerstag 10. Dezember 2009, 14:53

vollstes verständnis, no problemo !

Benutzeravatar
Sir Pustekuchen
Administrator
Administrator
Beiträge: 4181
Registriert: Dienstag 10. Januar 2006, 16:46
Kontaktdaten:

Re: Kompilierprobleme

Beitrag von Sir Pustekuchen » Mittwoch 23. Dezember 2009, 16:44

Update wurde durchgeführt. BotE ist nun VS2008 kompatibel.

Antworten

Zurück zu „technical questions“