Difference between revisions of "第三方库和工具"

From KlayGE
Jump to: navigation, search
m
 
(37 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[KlayGE]]依赖于以下的第三方库和工具。从KlayGE 3.12开始,这些库和工具的代码将都包含在KlayGE中,用户可以通过调用build_external.py来编译和安装它们。唯一需要预先安装的只有Python了。
+
[[KlayGE]]的代码依赖于以下的第三方库和工具。从KlayGE 3.12开始,除了OpenGL ES的SDK,其他库和工具的代码将都包含在KlayGE中。用户可以通过调用build_external.py来编译和安装它们。当然,在执行编译脚本前需要事先安装[http://www.python.org/ Python] 2.7+和[http://www.cmake.org/ CMake] 3.4+。
  
== Core需要:==
+
= 列表 =
*[http://www.python.org/ Python] 2.7或3.2。Debug版本的pythonxx_d.dll需要从Python的源代码自行编译。
+
这是4.15版中External目录下包含库的完整列表。
*[http://www.boost.org/ Boost] 1.46.1。推荐的编译命令行请参考[[常见问题解答|FAQ]]。
+
*[http://rapidxml.sourceforge.net/ RapidXml] 1.13。
+
  
== D3D11 Rendering System,DInput Input System和DSound Audio System需要:==
+
{| class="wikitable"
*[http://msdn.microsoft.com/directx DirectX SDK] June 2010。
+
|-
 +
! 名字 !! 版本 !! 提供了CMake !! 需要编译
 +
|-
 +
| [http://7-zip.org 7z] || {{No}}Forked git(修正了UWP和Android的编译问题) || 否 || 是
 +
|-
 +
| [https://developer.android.com/ndk/downloads/index.html android_native_app_glue] || {{No}}修正过的16B || 否 || 否
 +
|-
 +
| [https://github.com/assimp/assimp assimp] || git || 是 || 是
 +
|-
 +
| [http://www.boost.org/ boost] || 精简的1.70.0,[[使用到的boost库|只用到了一部分]] || 是,但没用到 || 是
 +
|-
 +
| [https://github.com/jarro2783/cxxopts cxxopts] || git ||是 || 否
 +
|-
 +
| d3dcompiler || N/A || No || No
 +
|-
 +
| [https://github.com/gongminmin/FreeImage FreeImage] || {{No}}Forked git(修正了C++17、MinGW和ARM上的编译问题) || 否 || 是
 +
|-
 +
| [https://www.freetype.org/ freetype] || git || 是 || 是
 +
|-
 +
| [https://github.com/google/googletest googletest] || git || 是 || 是
 +
|-
 +
| [https://github.com/xiph/ogg libogg] || git || 是 || 是
 +
|-
 +
| [https://github.com/xiph/vorbis libvorbis] || git || 是 || 是
 +
|-
 +
| [https://github.com/memononen/nanosvg nanosvg] || git || 否 || 否
 +
|-
 +
| [https://github.com/kcat/openal-soft openal-soft] || git || 是 || 是
 +
|-
 +
| [https://github.com/python/cpython Python] || {{No}}Forked git(修正了UWP和MinGW的编译问题) || 否 || 是
 +
|-
 +
| [https://github.com/python-cmake-buildsystem/python-cmake-buildsystem python-cmake-buildsystem] || {{No}}Forked git(修正了Android、iOS、Python 3.7和MinGW的编译问题) || 是 || 是
 +
|-
 +
| [https://github.com/Tencent/rapidjson rapidjson] || git || 是 || 否
 +
|-
 +
| [https://github.com/valnoel/rapidxml rapidxml] || git || 否 || 否
 +
|-
 +
| [https://github.com/gongminmin/UniversalDXSDK UniversalDXSDK] || 否 || 否
 +
|-
 +
| [https://github.com/xceedsoftware/wpftoolkit wpftoolkit] || {{No}}Forked git (修改了输出目录结构) || 否 || 是
 +
|-
 +
| [https://github.com/madler/zlib zlib] || git || Yes || Yes
 +
|}
  
== DShow Show System需要:==
+
除此之外,你还需要安装一个OpenGL ES SDK才能编译glloader_es和OpenGLES渲染系统。推荐使用[http://code.google.com/p/angleproject/ Google ANGLE]。
*Visual Studio 2010附带的Microsoft Windows SDK 7.0A,或者Visual Studio 2008附带的Microsoft Windows SDK 6.0A,或者[http://www.microsoft.com/downloads/details.aspx?FamilyID=484269e2-3b89-47e3-8eb7-1f2be6d7123a&displaylang=en Windows(R) Server 2003 R2 Platform SDK]。
+
  
 
+
[[en:Third-party libraries and tools]]
== OggVorbis Audio Datasource需要:==
+
[[ru:Сторонние библиотеки и инструменты]]
*[http://xiph.org/downloads/ libogg] 1.2.2和[http://xiph.org/downloads/ libvorbis] 1.3.2,需要把它们编译成static库。
+
 
+
 
+
== OpenAL Audio System需要:==
+
*[http://www.openal.org/downloads.html OpenAL SDK] 1.1。
+
 
+
 
+
== OpenGL Rendering System需要:==
+
*[http://developer.nvidia.com/object/cg_toolkit.html NVIDIA Cg] 3.0。
+
 
+
 
+
== OpenGL ES 2 Rendering System需要:==
+
*[http://www.malideveloper.com/tools/software-development/opengl-es-20-emulator.php ARM Mali OpenGL ES 2.0 Emulator] v1.2
+
 
+
 
+
== KFontGen工具需要:==
+
*[http://freetype.sourceforge.net/ FreeType] 2.4.4,编译它的LIB Debug和LIB Release两个solution configuration。
+
 
+
 
+
= 注意事项 =
+
 
+
第一次编译[[KlayGE]]之前需要先执行env_vars.py来设置环境变量。
+
 
+
由于[[KlayGE]]在VC下使用的运行库是多线程的DLL,所以需要把所有连接到exe的lib的运行库改为多线程DLL(Project->Properties->Configuration Properties->C/C++->Code Generation->Runtime Library,选择Multi-threaded Debug DLL/Multi-threaded DLL)。
+
 
+
另外,用VC8和VC9编译Release版的Boost需要定义_SECURE_SCL=0宏,方法之一是在bjam的命令行中加上define=_SECURE_SCL=0。
+
 
+
[[en:Third-party Libraries and Tools]]
+

Latest revision as of 01:28, 26 July 2019

KlayGE的代码依赖于以下的第三方库和工具。从KlayGE 3.12开始,除了OpenGL ES的SDK,其他库和工具的代码将都包含在KlayGE中。用户可以通过调用build_external.py来编译和安装它们。当然,在执行编译脚本前需要事先安装Python 2.7+和CMake 3.4+。

列表

这是4.15版中External目录下包含库的完整列表。

名字 版本 提供了CMake 需要编译
7z Forked git(修正了UWP和Android的编译问题)
android_native_app_glue 修正过的16B
assimp git
boost 精简的1.70.0,只用到了一部分 是,但没用到
cxxopts git
d3dcompiler N/A No No
FreeImage Forked git(修正了C++17、MinGW和ARM上的编译问题)
freetype git
googletest git
libogg git
libvorbis git
nanosvg git
openal-soft git
Python Forked git(修正了UWP和MinGW的编译问题)
python-cmake-buildsystem Forked git(修正了Android、iOS、Python 3.7和MinGW的编译问题)
rapidjson git
rapidxml git
UniversalDXSDK
wpftoolkit Forked git (修改了输出目录结构)
zlib git Yes Yes

除此之外,你还需要安装一个OpenGL ES SDK才能编译glloader_es和OpenGLES渲染系统。推荐使用Google ANGLE