[eMule-Web]

[eMule-Web] (http://www.emule-web.de/board/)
-   eMule MOD - Development (http://www.emule-web.de/board/emule-mod-development/)
-   -   Bitte um Kompilierhilfe! (http://www.emule-web.de/board/9114-bitte-um-kompilierhilfe.html)

JvA 6. April 2005 13:21

habs nun selber hinbekommen!
die 1. fehler resultierten aus einem compilierungsfehler in der png-lib die noch auf mulithreaded-dll anstatt nur multithreaded gestellt war.
und der rest war meine eigene blödheit!
also nix für ungut.
cya und thx

dani555 6. May 2005 18:48

Ich bräuchte auch mal geschwind Hilfe, beim Linken (0.46a mit VS2003.NET) bekomme ich folgende Meldungen:

Code:

Linking...
  LIBC.lib(crt0dat.obj) : error LNK2005: __C_Exit_Done already defined in LIBC.lib(crt0dat.obj)
  LIBC.lib(crt0dat.obj) : error LNK2005: __C_Termination_Done already defined in LIBC.lib(crt0dat.obj)
  LIBC.lib(crt0dat.obj) : error LNK2005: __exitflag already defined in LIBC.lib(crt0dat.obj)
  LIBC.lib(crt0dat.obj) : error LNK2005: __wpgmptr already defined in LIBC.lib(crt0dat.obj)
  LIBC.lib(crt0dat.obj) : error LNK2005: __pgmptr already defined in LIBC.lib(crt0dat.obj)
  LIBC.lib(crt0dat.obj) : error LNK2005: ___winitenv already defined in LIBC.lib(crt0dat.obj)
  LIBC.lib(crt0dat.obj) : error LNK2005: __wenviron already defined in LIBC.lib(crt0dat.obj)
  LIBC.lib(crt0dat.obj) : error LNK2005: ___initenv already defined in LIBC.lib(crt0dat.obj)
  LIBC.lib(crt0dat.obj) : error LNK2005: __environ already defined in LIBC.lib(crt0dat.obj)
  LIBC.lib(crt0dat.obj) : error LNK2005: ___wargv already defined in LIBC.lib(crt0dat.obj)
  LIBC.lib(crt0dat.obj) : error LNK2005: ___argv already defined in LIBC.lib(crt0dat.obj)
  LIBC.lib(crt0dat.obj) : error LNK2005: ___argc already defined in LIBC.lib(crt0dat.obj)
  LIBC.lib(crt0dat.obj) : error LNK2005: __winminor already defined in LIBC.lib(crt0dat.obj)
  LIBC.lib(crt0dat.obj) : error LNK2005: __winmajor already defined in LIBC.lib(crt0dat.obj)
  LIBC.lib(crt0dat.obj) : error LNK2005: __winver already defined in LIBC.lib(crt0dat.obj)
  LIBC.lib(crt0dat.obj) : error LNK2005: __osver already defined in LIBC.lib(crt0dat.obj)
  LIBC.lib(crt0dat.obj) : error LNK2005: __osplatform already defined in LIBC.lib(crt0dat.obj)
  LIBC.lib(crt0dat.obj) : error LNK2005: __umaskval already defined in LIBC.lib(crt0dat.obj)
  LIBC.lib(crt0dat.obj) : error LNK2005: ___crtExitProcess already defined in libcmt.lib(crt0dat.obj)
  LIBC.lib(crt0dat.obj) : error LNK2005: __cinit already defined in libcmt.lib(crt0dat.obj)
  LIBC.lib(crt0dat.obj) : error LNK2005: _exit already defined in libcmt.lib(crt0dat.obj)
  LIBC.lib(crt0dat.obj) : error LNK2005: __exit already defined in libcmt.lib(crt0dat.obj)
  LIBC.lib(crt0dat.obj) : error LNK2005: __cexit already defined in libcmt.lib(crt0dat.obj)
  LIBC.lib(crt0dat.obj) : error LNK2005: __c_exit already defined in libcmt.lib(crt0dat.obj)
  LINK : warning LNK4098: defaultlib 'LIBC' conflicts with use of other libs; use /NODEFAULTLIB:library
 FrameGrabThread.obj : error LNK2001: unresolved external symbol "public: bool __thiscall CxImage::DecreaseBpp(unsigned long,bool,struct tagRGBQUAD *)" (?DecreaseBpp@CxImage@@QAE_NK_NPAUtagRGBQUAD@@@Z)
 TitleMenu.obj : error LNK2001: unresolved external symbol "public: void __thiscall CxImage::CreateFromHBITMAP(struct HBITMAP__ *)" (?CreateFromHBITMAP@CxImage@@QAEXPAUHBITMAP__@@@Z)
 TitleMenu.obj : error LNK2001: unresolved external symbol "public: struct tagRGBQUAD __thiscall CxImage::GetPixelColor(long,long)" (?GetPixelColor@CxImage@@QAE?AUtagRGBQUAD@@JJ@Z)
  .\release/emule.exe : fatal error LNK1120: 3 unresolved externals

Wie kann ich das beheben?

Stulle 6. May 2005 18:54

benutzt du die neue Zlib¿ Wurde updated von den Devs!

MFG Stulle

dani555 6. May 2005 19:33

Ja, zlib 1.2.2.

Dieses "error LNK2005"-Zeugs bedeutet doch, dass ich etwas doppelt habe, oder? Aber ich wüsste nicht was, aus der Fehlermeldung werd' ich nich schlau.

dani555 7. May 2005 15:45

Also ich hab' jetzt noch zwei Errors weiß jemand wie ich die webgekomme?
Code:

PartFileConvert.obj : error LNK2001: unresolved external symbol "protected: void __thiscall CResizableLayout::AddAnchor(struct HWND__ *,class CSize,class CSize)" (?AddAnchor@CResizableLayout@@IAEXPAUHWND__@@VCSize@@1@Z)
  .\release/emule.exe : fatal error LNK1120: 1 unresolved externals

Edit: Ok, Problem behoben ich hab die ResizableLib von Franky-Five genommen.

MaxUpload 8. May 2005 15:55

Also bei deiner ersten Fehlerliste mußt du 'libcmt.lib' im Linker auf ignorieren setzen.

MfG Max

dani555 9. May 2005 12:43

Problem ist schon behoben, trozdem danke. :wink:

galaxy 11. May 2005 00:41

ich habe mal ne frage, und zwar wenn ich mein muli kompiliere kommt diese meldung kann mir da mal bitte einer helfen woich das in dem programm angeben muss. Microsoft Visual C++ 6.0 . Vielen Dank für die Hilfe http://the-master-galaxy.de/wbb2/att...entid=508&sid=

MaxUpload 11. May 2005 05:18

Sorry galaxy,aber Grundvoraussetzung zum kompilieren von Emule ist .Net . Das heißt du solltest mindestens VS2002 .NET haben. VS2003 .NET läuft auch sehr gut,aber von VS2005 .NET rate ich im Moment noch ab da man seh viel im Muli ändern muß.

MfG Max

galaxy 11. May 2005 10:30

alles klar dan danke ich dir schonmal,wenn ich noch fragen habe kann ich auf dich zu kommen?

MaxUpload 11. May 2005 22:08

Jederzeit und überall...vorausgesetzt ich habe grad Zeit und Internet ;-) .

MfG Max

galaxy 12. May 2005 01:02

oki ich habe das programm nur finde ich nix woich kompile klicken könnte?

Stulle 12. May 2005 05:54

*laug my ass off*
ersten hast du alle libs an ort und stelle¿ zweitens sind sie alle in dem richtigen projekt¿ drittens sind alle einstellungen richtig¿ viertens, projekt erstellen = compilen!!!

MFG Stulle

galaxy 12. May 2005 18:53

ähmmmm wenns du schon helfen möchtest dann gebe doch mal ne kleine erklärung;) besser ist das.

*laug my ass off*
ersten hast du alle libs an ort und stelle¿ zweitens sind sie alle in dem richtigen projekt¿ drittens sind alle einstellungen richtig¿ viertens, projekt erstellen = compilen!!!

ich denke jeder hat mal angefangen richtig;) ich bin php programmierer und möchte mich in andere projekte integrieren.ich fand die antworten von max sehr net und hilfreich,du kannst mir ja ne pm schicken und wenns du magst mir ein wenig unterstützung geben.ich kann bestimmt in sachen PHP auch ne ganze menge, aber das ist völlig wurst,wie gesagt wenn mir einer ne kleine hilfe geben möchte bin ich dankbar.

galaxy 15. May 2005 12:40

HOWTO - eMule sources kompilieren mit Microsoft Visual C++ .NET 2002 vs.2003

Den Sourcecode von eMule kann man hier runterladen: http://sourceforge.net/projects/emule

Man benötigt Microsoft© Visual C++ .NET 2002 oder 2003 um eMule zu kompilieren.

- Den Source code in einen neuen Ordner inkl. Unterverzeichnissen entpacken

Seit der Version 0.29b müssen zusätzlich folgende Bibliotheken gedownloadet werden, die nicht im Sourcepackage enthalten sind:

1. Crypto++ v5.1
http://www.eskimo.com/~weidai/cryptlib.html

2. zlib v1.1.4
http://www.gzip.org/zlib/

3. id3lib v3.8.3
http://sourceforge.net/projects/id3lib/

Den source code jeder Bibliothek eine Ebene über der des Quelltextes von eMule speichern, so dass die Verzeichnisstruktur wie folgt aussieht:


.\eMule
(Das Verzeichnis in dem alle Quelltexte, die für eMule von Bedeutung sind, gespeichert werden)

.\eMule\src
(Der Source code von eMule)

.\eMule\zlib
(Der Source code der zLib)

.\eMule\crypto51
(Der Source code von Crypto++ v5.1)

.\eMule\id3lib
(Der Source code der id3lib 3.8.3)


Die crypto51 Bibliothek erstellen:

* Kopiere den Inhalt der Datei crypto51.zip nach .\eMule\crypto51
* Starte Visual Studio gehe auf "Datei"/"Öffnen"/"Projekt" und öffne die Datei .\eMule\crypto51\cryptest.dsw. Du wirst aufgefordert die Datei zu konvertieren, was Du auch tust.
* Erstelle nun die cryptlib, sowohl die Debug- als auch die Release-Version. Als resultat erhälst Du folgende Dateien:

1.) .\eMule\crypto51\debug\cryptlib.lib
2.) .\eMule\crypto51\release\cryptlib.lib


Die zlib Bibliothek erstellen:

* Entpacke den Inhalt, der sich in der Datei zlib-1.1.4-1-src.zip befindet nach .\eMule\zlib
* Erstelle ein neues Projekt mit folgenden Eigenschaften:

* Speicherort: .\eMule\zlib
* Name: libz
* Typ: Win32 Projekt / Statische Bibliothek
* "Vorcompilierter Header" auswählen : Nein!
* "MFC" auswählen: Nein!
* Nachdem das Projekt erstellt wurde, unter Projekteigenschaften auf "C/C++"/"Codeerstellungen" gehen. Anschliessend für "Debug" "Multithreaded-Debug (/MTd)", und für "Release" "Multithreaded (/MT)" bei "Laufzeitbibliothek" auswählen.
* Folgende Dateien dem Projekt hinzufügen:

adler32.c
compress.c
crc32.c
deflate.c
gzio.c
infblock.c
infcodes.c
inffast.c
inflate.c
inftrees.c
infutil.c
trees.c
uncompr.c
zutil.c

* Die "Debug" und die "Release" version erstellen, so dass folgende Dateien entstehen:

1.) .\eMule\zlib\debug\libz.lib
2.) .\eMule\zlib\release\libz.lib


Die id3lib Bibliothek erstellen:

* Entpacke den Inhalt, der sich in der Datei id3lib-3.8.3.zip befindet nach .\eMule\id3lib
* Nenne die Datei .\eMule\id3lib\config.h.win32 in .\eMule\id3lib\config.h um
* Starte Visual Studio gehe auf "Datei"/"Öffnen"/"Projekt" und öffne die Datei .\eMule\id3lib\libprj\id3lib.dsw. Du wirst aufgefordert die Datei zu konvertieren, was Du auch tust.
* Stelle sicher, dass folgende Einstellungen gemacht sind:

1.) Allgemeines:

a.) Konfigurationstyp: Statische Bibliothek (.lib)
b.) Verwendung von MFC: Windows-Standardbibliotheken verwenden

2.) "C/C++"/"Codeerstellungen":

a.) Laufzeitbibliothek: "Multithreaded-Debug (/MTd)" ... für "Debug"
b.) Laufzeitbibliothek: "Multithreaded (/MT)" ... für "Release"

* Die "Debug" und die "Release" version erstellen.


eMule erstellen

Die Projektdatei von eMule setzt voraus, dass sich Bibliotheken und Headerdateien in folgenden UnterVerzeichnissen von .\eMule befinden:

Header Dateien:
.\crypto51
.\zlib
.\id3lib\include

Bibliotheken:
.\crypto51\debug\cryptlib.lib
.\crypto51\release\cryptlib.lib
.\zlib\debug\libz.lib
.\zlib\release\libz.lib
.\id3lib\libprj\id3lib.lib
.\id3lib\libprj\id3libD.lib

Wenn Du andere Verzeichnisse verwenden willst, musst Du die Projekteigenschaften dementsprechend anpassen.

* Öffne die emule.sln Projektmappe

* Wenn Du eine Nachricht Marke "Falsche Visual C++ Version" bekommst, musst Du die Dateien emule.sln und emule.vcroj mit einem Texteditor öffnen und folgendes ändern:

emule.sln: "...Format Version 8.00" nach 7.00 falls Du Microsoft© Visual C++ .NET 2002 nutzt
emule.vcproj: Version="7.10" nach 7.00 falls Du Microsoft© Visual C++ .NET 2002 nutzt

* Wähle "Release" oder "Debug"
* Erstelle die Projektmappe
* Falls das Kompilieren erfolgreich war, ist die EXE-Datei unter .\eMule\src\Debug bzw. .\eMule\src\Release zu finden
* Falls Du die Debugversion erstellst, brauchst Du die neuste dbghelp.dll von Microsoft um das Programm zu starten

WICHTIG: Wenn Du eMule modifizieren und anschliessend vertreiben willst, dann achte die GPL. Du musst den Source code mit den Binaries zum Download anbieten (zusammen oder getrennt).


nen link zum thema hier wäre hammer gewesen,habs selbst gefunden und nochmal hier rein gehauen,das hilft einigen leuten


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:35 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102