Official eMule-Board: Howto Build The Emule Sources (with Vs2002) - Official eMule-Board

Jump to content


  • (14 Pages)
  • +
  • « First
  • 10
  • 11
  • 12
  • 13
  • 14

Howto Build The Emule Sources (with Vs2002)

#221 User is offline   micmac2 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 3
  • Joined: 15-September 04

Posted 15 September 2004 - 09:47 PM

I didn't manage to compile the 0.44b :(
Is there a HOWTO which is uptodate? The included readme is way to short.
I compiled the 0.30b some time ago so I'm not unfamiliar with eMule.
I'm using VisualStudio 2002.NET.

Thanks
micmac2
0

#222 User is offline   daten-zwerg 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 1
  • Joined: 02-January 03

Posted 19 September 2004 - 11:16 AM

atzplzw, on Sep 8 2004, 06:09 PM, said:

Hi!

I get the same LNK2005 error: Symbol already defined in libcmt.lib.
If I do a NODEFAULTLIB:libcmt.lib there are other imports missing.

So is something is maybe wrong with the new png since that is the only lib I compiled new...

Any suggestions?


atzplzw
View Post


i have the same problem!
0

#223 User is offline   Tahattmeruh2 

  • The One And Only
  • PipPipPipPipPipPipPip
  • Group: Members
  • Posts: 632
  • Joined: 29-November 02

Posted 20 September 2004 - 08:16 AM

Make sure you have compiled resizelib as
*) Character Set: "Use Unicode Character Set"
*) Treat wchar_t as Built-in Type: "Yes"

and you link to the right lib. This was always my problem.

If you use VS2003, also change the template definition in DialogMinTrayBtn.cpp to

#if 0
// define this to use that source file as template
#define TEMPLATE template <class BASE>
#else
// define this to instantiate functions for class 'BASE' right in this CPP module
#define TEMPLATE template<>
#define BASE CResizableDialog
#endif


And also make sure that all libs are compiled with /MT switch.

Tahattmeruh
0

#224 User is offline   tinkywinky 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 5
  • Joined: 20-February 03

Posted 01 October 2004 - 10:05 AM

Hello

I have successfully compiled v. 44b, but my EXE crash when I try to start it. First it tells me "A default language was selected, etc", then three application error msg boxes come :

"Socket Notification Sink: emule.exe - Application error; the instruction at "xxx" referenced memory at "xxx". The memory could not be "read"."

All libs where compiled with /MT switch, DialogMinTrayBtn.cpp was correctly modified, no other changes were made to the code. Can someone help me?

edit : forgot to say, I'm using VS.NET 2003

edit2 :

I have some warnings while linking, like :

mfcs71.lib(stdafx.obj) : warning LNK4217: locally defined symbol _malloc imported in function "public: static void * __cdecl ATL::CCRTAllocator::Allocate(unsigned int)" (?Allocate@CCRTAllocator@ATL@@SAPAXI@Z)
mfcs71.lib(stdafx.obj) : warning LNK4217: locally defined symbol _free imported in function "public: static void __cdecl ATL::CCRTAllocator::Free(void *)" (?Free@CCRTAllocator@ATL@@SAXPAX@Z)


edit 3 : ok I found my problem, I was using MFC as shared library in ResizableLib, and it must be static.

This post has been edited by tinkywinky: 01 October 2004 - 11:03 AM

0

#225 User is offline   X-Trancer 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 10
  • Joined: 23-October 04

Posted 08 November 2004 - 07:36 AM

It gives a set for VS2002 with all libs as for the VS2003
0

#226 User is offline   Ardis 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 9
  • Joined: 15-June 04

Posted 10 November 2004 - 05:44 PM

Call me an idiot, but I can't for the life of me get version 0.44b to compile properly with VS 2003.
I have the same problem as was reported here by another user, which is:

ArchiveRecovery.obj : error LNK2001: unresolved external symbol _crc32
libpng.lib(png.obj) : error LNK2001: unresolved external symbol _crc32
BaseClient.obj : error LNK2001: unresolved external symbol _inflateEnd
libpng.lib(pngread.obj) : error LNK2001: unresolved external symbol _inflateEnd
ClientUDPSocket.obj : error LNK2001: unresolved external symbol _uncompress
id3lib.lib(io_decorators.obj) : error LNK2001: unresolved external symbol _uncompress


And 60ish more like them. It's been stated that it's a zlib issue, but I can't seem to be able to fix it. I've tried with both 1.1.4 and 1.2.1, as well as using the .lib I've always used up to version 0.43. Nothing.
The library compiles correctly, both using the zlibvc project that comes with it or creating a new project as described in this thread. Everything has been compiled as Static Library (except eMule itself) with /MT, libpng is Win32 LIB Release, ResizableLib is Release Static. All 6 libraries have been added to the eMule project (Linker -> Input -> Additional Dependencies) with the correct paths.

What is it that I'm not seeing?

EDIT: Problem fixed thanks to a friend of mine.
It turns out if you compile the zlib using the method described in their readme.txt (i.e. copying project files from contrib/vstudio/vc7 to the main dir) the resulting library won't link. To get it to work it needs to be compiled in DOS mode manually (i.e. nmake -f win32/Makefile.msc ). Wee.

This post has been edited by Ardis: 13 November 2004 - 02:35 PM

0

#227 User is offline   Wolfmanfx 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 2
  • Joined: 09-December 04

Posted 13 December 2004 - 07:46 PM

emule error LNK2019: unresolved external symbol "struct _iobuf * __cdecl std::_Fiopen(char const *,int,int)" (?_Fiopen@std@@YAPAU_iobuf@@PBDHH@Z) referenced in function "public: class std::basic_filebuf<char,struct std::char_traits<char> > * __thiscall std::basic_filebuf<char,struct std::char_traits<char> >::open(char const *,int,int)" (?open@?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAEPAV12@PBDHH@Z)
emule error LNK2001: unresolved external symbol "struct _iobuf * __cdecl std::_Fiopen(char const *,int,int)" (?_Fiopen@std@@YAPAU_iobuf@@PBDHH@Z)
emule fatal error LNK1120: 1 unresolved externals


I got this error can someone help :xshocked:
0

#228 User is offline   doudounet 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 1
  • Joined: 17-January 03

Posted 20 December 2004 - 11:14 AM

Hi all,

I try to compile emule 0.44d with VS2003.NET and I have the following error !!!
Some one can help me ???
THanks

DialogMinTrayBtn.cpp(101) : error C2906: 'void CDialogMinTrayBtn::MinTrayBtnInit(void)' : une spécialisation explicite requiert 'template <>'
with
[
BASE=CResizableDialog
]
DialogMinTrayBtn.cpp(144) : error C2906: 'void CDialogMinTrayBtn::OnNcPaint(void)' : une spécialisation explicite requiert 'template <>'
with
[
BASE=CResizableDialog
]
DialogMinTrayBtn.cpp(151) : error C2906: 'BOOL CDialogMinTrayBtn::OnNcActivate(BOOL)' : une spécialisation explicite requiert 'template <>'
with
[
BASE=CResizableDialog
]
DialogMinTrayBtn.cpp(160) : error C2906: 'UINT CDialogMinTrayBtn::OnNcHitTest(CPoint)' : une spécialisation explicite requiert 'template <>'
with
[
BASE=CResizableDialog
]
DialogMinTrayBtn.cpp(173) : error C2906: 'void CDialogMinTrayBtn::OnNcLButtonDown(UINT,CPoint)' : une spécialisation explicite requiert 'template <>'
with
[
BASE=CResizableDialog
]
DialogMinTrayBtn.cpp(186) : error C2906: 'void CDialogMinTrayBtn::OnNcRButtonDown(UINT,CPoint)' : une spécialisation explicite requiert 'template <>'
with
[
BASE=CResizableDialog
]
DialogMinTrayBtn.cpp(192) : error C2906: 'void CDialogMinTrayBtn::onmousemove(UINT,CPoint)' : une spécialisation explicite requiert 'template <>'
with
[
BASE=CResizableDialog
]
DialogMinTrayBtn.cpp(214) : error C2906: 'void CDialogMinTrayBtn::OnLButtonUp(UINT,CPoint)' : une spécialisation explicite requiert 'template <>'
with
[
BASE=CResizableDialog
]
DialogMinTrayBtn.cpp(231) : error C2906: 'void CDialogMinTrayBtn::OnTimer(UINT_PTR)' : une spécialisation explicite requiert 'template <>'
with
[
BASE=CResizableDialog
]
DialogMinTrayBtn.cpp(247) : error C2906: 'LRESULT CDialogMinTrayBtn::_OnThemeChanged(void)' : une spécialisation explicite requiert 'template <>'
with
[
BASE=CResizableDialog
]
0

#229 User is offline   templarkadosh 

  • Member
  • PipPip
  • Group: Members
  • Posts: 21
  • Joined: 17-September 04

Posted 28 December 2004 - 01:11 PM

i had the same problem ...

whow i can fix it ???
0

#230 User is offline   templarkadosh 

  • Member
  • PipPip
  • Group: Members
  • Posts: 21
  • Joined: 17-September 04

Posted 11 January 2005 - 08:06 PM

hello ... can anyone help here ???
0

#231 User is offline   coolodeu 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 2
  • Joined: 19-January 05

Posted 20 January 2005 - 01:11 AM

whats wrong?

Kompilieren...
DialogMinTrayBtn.cpp
DialogMinTrayBtn.cpp(101) : error C2906: 'void CDialogMinTrayBtn<BASE>::MinTrayBtnInit(void)': Explizite Spezialisierung erfordert 'Vorlage <>'
        with
        [
            BASE=CResizableDialog
        ]
DialogMinTrayBtn.cpp(144) : error C2906: 'void CDialogMinTrayBtn<BASE>::OnNcPaint(void)': Explizite Spezialisierung erfordert 'Vorlage <>'
        with
        [
            BASE=CResizableDialog
        ]
DialogMinTrayBtn.cpp(151) : error C2906: 'BOOL CDialogMinTrayBtn<BASE>::OnNcActivate(BOOL)': Explizite Spezialisierung erfordert 'Vorlage <>'
        with
        [
            BASE=CResizableDialog
        ]
DialogMinTrayBtn.cpp(160) : error C2906: 'UINT CDialogMinTrayBtn<BASE>::OnNcHitTest(CPoint)': Explizite Spezialisierung erfordert 'Vorlage <>'
        with
        [
            BASE=CResizableDialog
        ]
DialogMinTrayBtn.cpp(173) : error C2906: 'void CDialogMinTrayBtn<BASE>::OnNcLButtonDown(UINT,CPoint)': Explizite Spezialisierung erfordert 'Vorlage <>'
        with
        [
            BASE=CResizableDialog
        ]
DialogMinTrayBtn.cpp(186) : error C2906: 'void CDialogMinTrayBtn<BASE>::OnNcRButtonDown(UINT,CPoint)': Explizite Spezialisierung erfordert 'Vorlage <>'
        with
        [
            BASE=CResizableDialog
        ]
DialogMinTrayBtn.cpp(192) : error C2906: 'void CDialogMinTrayBtn<BASE>::onmousemove(UINT,CPoint)': Explizite Spezialisierung erfordert 'Vorlage <>'
        with
        [
            BASE=CResizableDialog
        ]
DialogMinTrayBtn.cpp(214) : error C2906: 'void CDialogMinTrayBtn<BASE>::OnLButtonUp(UINT,CPoint)': Explizite Spezialisierung erfordert 'Vorlage <>'
        with
        [
            BASE=CResizableDialog
        ]
DialogMinTrayBtn.cpp(231) : error C2906: 'void CDialogMinTrayBtn<BASE>::OnTimer(UINT_PTR)': Explizite Spezialisierung erfordert 'Vorlage <>'
        with
        [
            BASE=CResizableDialog
        ]
DialogMinTrayBtn.cpp(247) : error C2906: 'LRESULT CDialogMinTrayBtn<BASE>::_OnThemeChanged(void)': Explizite Spezialisierung erfordert 'Vorlage <>'
        with
        [
            BASE=CResizableDialog
        ]



please help
0

#232 User is offline   drakon78 

  • Splendid Member
  • PipPipPipPip
  • Group: Members
  • Posts: 102
  • Joined: 17-September 02

Posted 06 February 2005 - 10:37 PM

reread Tahattmeruh2's posting
0

#233 User is offline   arungaikwad 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 2
  • Joined: 10-February 05

Posted 10 February 2005 - 03:07 PM

bluecow, on Jun 24 2003, 02:35 PM, said:

HOWTO Build the eMule sources with Microsoft© Visual C++ .NET 2002

The sourcecode of eMule is availible as seperate download at:
http://sourceforge.net/projects/emule
You need Microsoft© Visual C++ .NET 2002 to compile eMule.

-Unzip the sources (with subdirs) into a new folder

Since eMule v0.29b the separate download and compilation of additional libraries is required. These libs are 3rd party and therefore - as usual - not within our distribution.

Note: You will only have to do all of this (the external libraries) once. Which is largely the reason it is worthwhile to do. This way, eMule doesn't have to distribute the source code for these libraries, source code which NEVER changes, with each distribution.

You need the following libs:

1. Crypto++ v5.1
    http://www.eskimo.co...i/cryptlib.html
   
2. zlib v1.1.4
    http://www.gzip.org/zlib/
   
3. id3lib v3.8.3
    http://sourceforge.n...rojects/id3lib/
   
Download and save their sourcecode one level above the eMule source code folder and compile them (check the eMule-project file to learn about the required foldernames, or adapt them to your needs!).


Recommended directory structure
.\eMule\src
.\eMule\zlib
.\eMule\crypto51
.\eMule\id3lib


Building crypto51 library
Copy the crypto51.zip source package into .\eMule\crypto51 directory and extract all files in that directory.

From within Visual Studio use the File/Open/Project menu command to open the VC 6.0 workspace file .\eMule\crypto51\cryptest.dsw. Confirm each message box opened by VS concerning the project file conversion to the current format.

Build at least the cryptlib Debug and the cryptlib Release solution configurations.

If you get (at least) the following files, everything worked fine.
  .\eMule\crypto51\debug\cryptlib.lib
  .\eMule\crypto51\release\cryptlib.lib


Building the zlib library
Copy the zlib.zip source package into .\eMule\zlib directory and extract all files in that directory.

Create a VS project with the following properties:
  Project location:    .\eMule\zlib
  Name of the project:  libz
  Type of project:      Win32 Project/Static Library
  "Precompiled Headers" No (selectable in the project wizard)
  "MFC"                No (selectable in the project wizard)

Change the "Runtime Library"  option to "Multi-threaded Debug (/MTd)" for the Debug solution configuration and to "Multi-threaded (/MT)" for the Release solution configuration.

Add the following files to the project
  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

Build the libz Debug and libz Release solution configurations.

If you get (at least) the following two files, everything worked fine.
  .\eMule\zlib\debug\libz.lib
  .\eMule\zlib\release\libz.lib
 

Building the id3lib library
Copy the id3lib source package into .\eMule\id3lib directory and extract all files in that directory.

Rename .\eMule\id3lib\config.h.win32 to .\eMule\id3lib\config.h

From within Visual Studio use the File/Open/Project menu command to open the VC 6.0 workspace file .\eMule\id3lib\libprj\id3lib.dsw. Confirm each message box opened by VS concerning the project file conversion to the current format.

Make sure the project options for the id3lib project are:
  General Settings:
    - Configuration Type: Static Library (.lib)
    - Use of MFC: Use Standard Windows Libraries
  C/C++ / Code Generation:
    - Runtime Library: Multi-threaded Debug (/MTd) ... for the Debug build configuration
    - Runtime Library: Multi-threaded (/MT)        ... for the Release build configuration

Build the id3lib Debug and id3lib Release solution configurations.
 

Building eMule
The distributed eMule project file expects to find the libraries and header files in the following sub directories of the .\eMule directory.

Header files
  .\crypto51
  .\zlib
  .\id3lib\include
 
Library files
  .\crypto51\debug\cryptlib.lib
  .\crypto51\release\cryptlib.lib
  .\zlib\debug\libz.lib
  .\zlib\release\libz.lib
  .\id3lib\libprj\id3lib.lib
  .\id3lib\libprj\id3libD.lib

If you don't want to use the (above noted) recommended directory structure, you have to specify the according include directories and input libraries explicitly in the project settings for C/C++ and Linker in the eMule project properties.

-Open the emule.sln Visual Studio Solution

-If you get an error message like "wrong version of Visual C++", you have to open emule.sln and emule.vcroj with an editor and change some values:

emule.sln: "...Format Version 8.00" to 7.00 if you use Microsoft© Visual C++ .NET 2002
emule.vcproj: Version="7.10"  to 7.00 if you use Microsoft© Visual C++ .NET 2002

-Select "Release" or "Debug" build in the solution configuration manager
-Build the solution.
-If the compile was successful, the emule.exe is either in the .\eMule\src\Debug or .\eMule\src\Release directory
-When you build a debug dump version, you need the latest dbghelp.dll from Microsoft to run the app

-IMPORTANT:
If you make modifications to eMule and you distribute the compiled version of your build, be sure to obey the GPL license. You have to include the sourcecode, or make it availible for download together with the binary version.

Warning: I will keep this thread open for discussion.. But most likely will update the main post periodically with the good information and corrections and delete the added posts to keep this thread clean. (cit. Unknown1) :)
View Post

0

#234 User is offline   arungaikwad 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 2
  • Joined: 10-February 05

Posted 10 February 2005 - 03:11 PM

Hi,

I have downloaded emule 1.04 and tried to compile that but giving the error as
"InterfaceCategory" is not present in the current project.

I have added all the required references.......
can u tell me the solution
0

#235 User is offline   PacoBell 

  • Professional Lurker ¬_¬ (so kyoot!)
  • PipPipPipPipPipPipPip
  • Group: Moderator
  • Posts: 7296
  • Joined: 04-February 03

Posted 10 February 2005 - 05:51 PM

Umm...there is no official client with a version # 1.04. Where did you get this from?
Sed quis custodiet ipsos custodes
Math is delicious!
MmMm! Mauna Loa Milk Chocolate Toffee Macadamias are little drops of Heaven ^_^
Si vis pacem, para bellum DIE SPAMMERS DIE!

#236 User is offline   Uncle_Bob 

  • Advanced Member
  • PipPipPip
  • Group: Members
  • Posts: 72
  • Joined: 03-December 03

Posted 12 February 2005 - 10:04 PM

I think he's talkin' 'bout emule+ or something...
0

#237 User is offline   PacoBell 

  • Professional Lurker ¬_¬ (so kyoot!)
  • PipPipPipPipPipPipPip
  • Group: Moderator
  • Posts: 7296
  • Joined: 04-February 03

Posted 13 February 2005 - 04:21 AM

Naw, it's eMule+ doesn't have that kind of version numbering, AFAIK.
Sed quis custodiet ipsos custodes
Math is delicious!
MmMm! Mauna Loa Milk Chocolate Toffee Macadamias are little drops of Heaven ^_^
Si vis pacem, para bellum DIE SPAMMERS DIE!

#238 User is offline   zaxxar 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 12
  • Joined: 24-February 03

Posted 17 February 2005 - 09:57 PM

Did some1 manage to compile 45b already ?
Having massive troubles...
I did the same as any time, used
srchybrid from the new source-zip,
and the compiled folders of crypto51, id3lib, png, ResizeableLib, zlib
from my previous builds (this worked for the last few releases...)
compile CxImage in srchybrid, now trying emule.
error... ../ResizeableLib/ReleaseUnicode/ResizeableLib.lib not found...
compiling another ver. of ResizeableLib, setting Character set to Unicode...
put into the path above, and still getting errors during compilation of emule...

emule error LNK2005: _wcscmp already defined in libcmt.lib(wcscmp.obj)
emule error LNK2005: _wcslen already defined in libcmt.lib(wcslen.obj)
emule error LNK2005: _memmove already defined in msvcrt.lib(MSVCR70.dll)
emule error LNK2005: __vscwprintf already defined in libcmt.lib(vswprint.obj)
emule error LNK2005: _vswprintf already defined in libcmt.lib(vswprint.obj)
emule error LNK2005: _swscanf already defined in libcmt.lib(swscanf.obj)
emule error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) already defined in libcmt.lib(typinfo.obj)
emule error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) already defined in libcmt.lib(typinfo.obj)
emule warning LNK4098: defaultlib 'mfc70u.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
emule warning LNK4098: defaultlib 'mfcs70u.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
emule warning LNK4098: defaultlib 'msvcrt.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
emule error LNK2001: unresolved external symbol "protected: void __thiscall CResizableDialog::EnableSaveRestore(wchar_t const *,int)" (?EnableSaveRestore@CResizableDialog@@IAEXPB_WH@Z)
emule error LNK2001: unresolved external symbol "protected: void __thiscall CResizableSheet::EnableSaveRestore(wchar_t const *,int,int)" (?EnableSaveRestore@CResizableSheet@@IAEXPB_WHH@Z)
emule error LNK2001: unresolved external symbol "public: __thiscall CResizableDialog::CResizableDialog(wchar_t const *,class CWnd *)" (??0CResizableDialog@@QAE@PB_WPAVCWnd@@@Z)
emule error LNK2001: unresolved external symbol "public: __thiscall CResizableSheet::CResizableSheet(wchar_t const *,class CWnd *,unsigned int)" (??0CResizableSheet@@QAE@PB_WPAVCWnd@@I@Z)
emule fatal error LNK1120: 4 unresolved externals


has somebody else this errors?
could anyone help me please?

TIA, Zak
0

#239 User is offline   StarShaper 

  • Splendid Member
  • PipPipPipPip
  • Group: Members
  • Posts: 146
  • Joined: 07-August 03

Posted 17 February 2005 - 10:12 PM

It seems that you messed up your libs. You can get a working package e.g. here or here.
0

#240 User is offline   CiccioBastardo 

  • Doomsday Executor
  • PipPipPipPipPipPipPip
  • Group: Italian Moderators
  • Posts: 5541
  • Joined: 22-November 03

Posted 17 February 2005 - 10:58 PM

I had the same problems.

The problem with ResizableLib is solved by simply changing the destination dir of the linker output.

The other problems were solved only by using the libs settings found in the archive found from Uncle_Bob signature.
Had not time to check why, but I presume it's a compiler setting (one of the hundred settings you can mess with ;) ).

I managed to compile correctly ZZUL .45b

This post has been edited by CiccioBastardo: 17 February 2005 - 10:59 PM

The problem is not the client, it's the user
0

  • Member Options

  • (14 Pages)
  • +
  • « First
  • 10
  • 11
  • 12
  • 13
  • 14

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users