Zh/Installing and Debugging the Source Code: Difference between revisions

From Valve Developer Community
< Zh
Jump to navigation Jump to search
No edit summary
m (Multipage removal)
 
(7 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{otherlang2
{{LanguageBar}}
|title=安装与调试源代码
|jp=Installing_and_Debugging_the_Source_Code:jp
|en=Installing_and_Debugging_the_Source_Code
|pl=Installing_and_Debugging_the_Source_Code:pl
|es=Installing_and_Debugging_the_Source_Code:es
|fr=Installing_and_Debugging_the_Source_Code:fr
|ru=Installing_and_Debugging_the_Source_Code:ru
}}
这篇文章会告诉你安装和调试源代码的基本步骤.


== 一步一步慢慢来 ==


=== 运行 SDK 并创建一个 MOD ===
== Source SDK 2013 ==


# 从 Steam 运行 Source SDK 接着选择 '''Create a Mod'''.
见 {{L|Source SDK 2013}}
# 通常您可以在这里选择任何类型的 MOD, 但是在此教程中, 选择 '''Modify Half-Life 2 Single Player''' 选项,然后点击 '''Next'''.
# 在出现的对话框上方的输入框中, 输入您想要创建 MOD 的路径. 在此教程中假设您输入了 '''C:\MyMod'''.
# 在下方的输入框中, 输入您的 MOD 名称. 这将在您的 '''''Steam安装路径'''\SteamApps\SourceMods'' 下创建一个以此命名的文件夹. 此教程假设您在这儿输入了 '''MyMod''' .
# 点击 '''Next''' 按钮,源代码就会被安装到您的硬盘中了.
# 等待 MOD 安装程序结束.


=== 编译源代码 ===
== 安装 ==
关于编译的一些建议请到这里 : [[Compiler Choices|编译器的选择]]


更具体一些 :
# 启动Source SDK选择 ''Create a Mod''. 见 {{L|Create a Mod}} 获得更多细节.
* [[Compiling under VS2003|用 Visual Studio 2003 编译]]
# {{L|Compiler Choices|选择编译器}}
* [[Compiling under VS2005|用 Visual Studio 2005 编译]]
# 完成!可以先选择{{L|Your First Entity|编写你的第一个实体}}来开始你的Mod制作。
* [[Compiling under VS2008|用 Visual Studio 2008 编译]]
在Linux上编译, 见 {{L|Compiling under Linux}}. 见 [https://github.com/ValveSoftware GitHub]来获得最新代码


{{note|项目的默认编译配置为debug模式。为了让 MOD 以调试状态的 dll 运行,您必须在 Steam 的游戏列表中右键点击您的 MOD , 点击 '''属性''' -> '''设置启动选项''' 添加 ''-allowdebug'' 到 已存在的所有参数后面 (以空格分离)。你可以在配置管理器中切换到release模式(用于发行模组)。}}
== 调试 ==


目前代码在 VS2005 能够更好的编译. 您可以在这里下载: http://www.microsoft.com/express/2005/
'''调试''' 是一个人仔细检查程序内部工作的过程。它可以找到崩溃和其他错误的原因。


VCE2005 用户需要下载 [http://www.microsoft.com/downloads/details.aspx?FamilyID=e6e1c3df-a74f-4207-8586-711ebe331cdc&DisplayLang=en Windows SDK] (Windows 2000 用户: [http://www.microsoft.com/downloads/details.aspx?familyid=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en Platform SDK]). Visual Studio 和 VCE2008 用户不需要.
=== Windows ===


=== 调试 ===
# 确保你是在 Debug 状态下工作,而并非是 Release.
# 在解决方案浏览器 (Microsoft Visual C++,也可以是Visual Studio),右击可用的项目 (加粗的) 并选择 ''Properties''. 在Server或者Client上工作都没关系,但最好选择Client(HL2).
# 在弹出的窗口中的左栏中选择 ''Debugging''
# 路径必须定位到使用的 SDK 版本. 例如 Source SDK 2013,单人模式模组的设置应该如下:


==== 设置调试参数 ====
    Command:          C:\Program Files (x86)\Steam\steamapps\common\Source SDK Base 2013 Singleplayer\hl2.exe
    Command Arguments: -allowdebug -dev -sw -condebug -console -toconsole -game "C:\My_Mod\source-sdk-2013\sp\game\mod_hl2" +map my_map
{{note|这只会在您安装并运行了 Source SDK Base 之后起作用.}}
    Working Directory: C:\Program Files (x86)\Steam\steamapps\common\Source SDK Base 2013 Singleplayer\
# 在 '''解决方案资源管理器窗口|Solution Explorer window''', 右键点击当前项目 (用粗体标记的名称) 并选择 '''属性|Properties'''.
# 当属性对话框出现时, 选择左手边的'''调试'''选项.
# 在右手边 '''命令|Command''' 旁边的文本框中, 输入 <code>C:\Steam\SteamApps\'''Username'''\source sdk base 2007\hl2.exe</code> (根据您的 Steam 的安装目录调整这里的路径).
# 在 '''命令参数|Command Arguments''' 旁边输入 <code>-dev -sw -game "C:\Steam\SteamApps\SourceMods\MyMod"</code> (这里的 '''MyMod''' 是你在 ''Create a Mod'' 对话框中输入的名字).
# 在 '''工作目录|Working Directory''' 旁边输入 <code>C:\Steam\SteamApps\'''Username'''\source sdk base 2007</code> (根据您的 Steam 的安装目录调整这里的路径).
# 点击 '''OK''' 按钮.


{{note|如果你在上述选项中的路径含有空格,最好给路径加上双引号。例如: <code>"C:\Steam\SteamApps\'''Username'''\team fortress 2\hl2.exe"</code> 等等。如果不加双引号,'''或许也可以'''正常工作,但如果在调试时候遇到问题,可以尝试一下这个办法。}}
# 在调试前你必须解包所有的游戏资源到你的模组文件夹或者SDK里 (不低于 2006 版). 不然会白屏, 粉色控制台或者别的BUG! 这很重要. 你需要着色器 (白屏bug) ,从 <code>Source SDK Base\vpks</code>里获取,然后是 <code>resources\</code> to <code>Source SDK Base\hl2\</code> (修复目录字段) 最后是 <code>Source SDK Base\platform</code> (粉色控制台), 不要忘记t <code>expressions\</code>, 否则NPC不会动他们的嘴唇,以及别的东西 像是模型,材质之类,不要尝试使用不同的起源引擎模型除了来自你的SDK的,不然会有BUG
{{note|如果你运行的是Half-Life 2: Episode One引擎,你可以用 <code> source sdk base</code> 代替 <code> source sdk base 2007</code>}}


==== 在调试器中运行 ====
你任何时间都可以按下F5来调试.  
# ''重要步骤: 当 SDK 更新后, 您必须确定在调试器里运行游戏之前,至少已经'' '''通过 Steam''' ''运行了一次您编辑过的游戏 (只需要一次). 否则, 当您通过调试器运行的时候,您有可能会遇到 Steam 错误 .''
# 右键点击刚才编辑过属性的工程, 选择 调试|Debug->启动新实例|Start New Instance.
# 如果您得到警告: <code>hl2.exe</code> 没有调试信息, 忽略它.
# 现在 Half-Life 2 应该会启动并且运行您的代码了. 您接下来就可以修改这些代码, 重新编译, 然后回到游戏看看您的修改!


==== 其他方法:运行时附加调试器 ====
{{note| Visual Studio 2013 调试前可能会需要点击''' “生成——重新生成解决方案”'''}}
{{note|"Command Arguments"所定位的mod文件目录最好是 '''“项目——属性——配置属性——Build Events——Post-Build Events”'''中命令行所设置的,}}
{{note|在点击调试时可能会弹出一个警告窗口,显示“找不到或打开PDB文件”,勾选不再显示,然后点击“确定”即可}}


# 从 Steam 启动 MOD
# 在 Visual Studio 中, 主菜单 > 调试|Debug > 附加到进程...|Attach to Process...
# 选择您的 MOD 名称的 hl2.exe 进程
{{tip|您可以在窗口模式运行 : 添加 "-window" 参数到 run_mod.bat}}


== 链接 ==


掌握了这篇文档之后,建议去看看 [[Your First Entity|创建你的第一个实体]] 文档, 在那里您可以对一些源代码做修改.
=== Linux ===
(译者:没用过Linux,偷懒了 :D)
# Use the environment variable <code>CFG=debug</code> when running the command you normally use to generate the makefiles with the {{L|Valve_Project_Creator|VPC}} script. (Run again with <code>CFG=release</code> to go back to producing release binaries.) 
# Make and Install
# Open a terminal window and cd to the location of the executable you are running
<!-- not needed, and bad? # Perform <code>export LD_LIBRARY_PATH=".:bin:$LD_LIBRARY_PATH"</code> -->
# Perform <code>gdb srcds_linux</code> (or whatever the name is)
# Perform <code>run <parameters></code> to start the program


如果您想要整合来自 Valve 的代码, 如果您需要代码备份(code backups)和修订历史, 请看看 [[Using Source Control with the Source SDK|在Source SDK中使用版本控制]] 文档.
* On a crash ("segfault"), do <code>bt</code> ("backtrace") to see the callstack.
* To break into the debugger, press {{key|Ctrl+C}}; to continue afterwards perform <code>cont</code>.
* To set a breakpoint, do <code>break <function></code>. See <code>help breakpoint</code> for more details.
* To print an expression, do <code>print <expr></code>.


[[Category:Programming:zh-cn|程序]]
 
[[Category:Modding:zh-cn|MOD 制作]]
[[Category:Programming]]
[[Category:Modding]]

Latest revision as of 07:36, 12 July 2024

English (en)Deutsch (de)Español (es)Français (fr)Italiano (it)日本語 (ja)Polski (pl)Русский (ru)中文 (zh)Translate (Translate)


Source SDK 2013

Source SDK 2013(en)

安装

  1. 启动Source SDK选择 Create a Mod. 见 Create a Mod(en) 获得更多细节.
  2. 选择编译器(en)
  3. 完成!可以先选择编写你的第一个实体(en)来开始你的Mod制作。

在Linux上编译, 见 Compiling under Linux(en). 见 GitHub来获得最新代码

调试

调试 是一个人仔细检查程序内部工作的过程。它可以找到崩溃和其他错误的原因。

Windows

  1. 确保你是在 Debug 状态下工作,而并非是 Release.
  2. 在解决方案浏览器 (Microsoft Visual C++,也可以是Visual Studio),右击可用的项目 (加粗的) 并选择 Properties. 在Server或者Client上工作都没关系,但最好选择Client(HL2).
  3. 在弹出的窗口中的左栏中选择 Debugging
  4. 路径必须定位到使用的 SDK 版本. 例如 Source SDK 2013,单人模式模组的设置应该如下:
   Command:           C:\Program Files (x86)\Steam\steamapps\common\Source SDK Base 2013 Singleplayer\hl2.exe
   Command Arguments: -allowdebug -dev -sw -condebug -console -toconsole -game "C:\My_Mod\source-sdk-2013\sp\game\mod_hl2" +map my_map
   Working Directory: C:\Program Files (x86)\Steam\steamapps\common\Source SDK Base 2013 Singleplayer\
  1. 在调试前你必须解包所有的游戏资源到你的模组文件夹或者SDK里 (不低于 2006 版). 不然会白屏, 粉色控制台或者别的BUG! 这很重要. 你需要着色器 (白屏bug) ,从 Source SDK Base\vpks里获取,然后是 resources\ to Source SDK Base\hl2\ (修复目录字段) 最后是 Source SDK Base\platform (粉色控制台), 不要忘记t expressions\, 否则NPC不会动他们的嘴唇,以及别的东西 像是模型,材质之类,不要尝试使用不同的起源引擎模型除了来自你的SDK的,不然会有BUG

你任何时间都可以按下F5来调试.

Note.png注意: Visual Studio 2013 调试前可能会需要点击 “生成——重新生成解决方案”
Note.png注意:"Command Arguments"所定位的mod文件目录最好是 “项目——属性——配置属性——Build Events——Post-Build Events”中命令行所设置的,
Note.png注意:在点击调试时可能会弹出一个警告窗口,显示“找不到或打开PDB文件”,勾选不再显示,然后点击“确定”即可


Linux

(译者:没用过Linux,偷懒了 :D)

  1. Use the environment variable CFG=debug when running the command you normally use to generate the makefiles with the VPC(en) script. (Run again with CFG=release to go back to producing release binaries.)
  2. Make and Install
  3. Open a terminal window and cd to the location of the executable you are running
  4. Perform gdb srcds_linux (or whatever the name is)
  5. Perform run <parameters> to start the program
  • On a crash ("segfault"), do bt ("backtrace") to see the callstack.
  • To break into the debugger, press Ctrl+C; to continue afterwards perform cont.
  • To set a breakpoint, do break <function>. See help breakpoint for more details.
  • To print an expression, do print <expr>.