随笔-20  评论-9  文章-1  trackbacks-0

关键字: Emule 编译 错误 VC++

 

编译环境

Microsoft Visual C++ .NET 2003 v7.1

Emule版本: 0.42g

 

请注意红字标注部分.

 

1.下载相应的libs

包括:crypto++(crypto51), id3lib,  png,  zlib, ResizableLib

 

2. 编译emule所依赖的libs

注意编译Crypto51 时会报编译错误,这些错误通过下列方法进行修改。

修改pubkey.h, 在文件头部加上#include "asn.h",这样就没有有关OID的错误了。

修改integer.cpp,修改下列片断

#ifdef SSE2_INTRINSICS_AVAILABLE
template <class T>

typename AllocatorBase<T>::pointer AlignedAllocator<T>::allocate(size_type n, const void *)

注意所编译的所有libs工程都要用下列Runtime Libaray:

Multi-threaded Debug (/MTd)

Or

Multi-threaded (/MT)

请仔细检查,再检查。有的lib可以编译成DLL形式,但是EMule不使用DLL形式而是Static形式的lib,请注意选择正确的编译目标。

 

3.修改emule相关文件以适应v7.1的要求

打开DialogMinTrayBtn.cpp,修改下列片断

#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

 

打开Emule.cpp,修改下列片断

ASSERT( VERSION_UPDATE + 'a' <= 'g' );

 

4. 修改工程设置

连接时忽略下列库:   msvcrtd.lib,LIBCD

posted on 2005-08-29 18:34 Kenneth Blog 阅读(1433) 评论(0)  编辑  收藏 所属分类: 开源项目

只有注册用户登录后才能发表评论。


网站导航: