如何在没有使用Visual Studio的情况下编写DirectX程序

3
所以这就是我想做的事情…最近开始使用Sublime Text 2作为我的新一号编辑器。 我也想开始编写directX程序,我想知道是否有办法使用Sublime Text2代替Visual Studio。
我在想像这样的东西...
...在Sublime Text2中进行编程 ...在Sublime Text2中进行编译/构建 ...从Visual Studio中进行调试?或者使用WinDbg?我从未使用过它
我知道我可以只是在ST2中写代码,然后设置普通的VisualStudio项目,但是当我想在sublime text中添加新文件时,就会遇到问题等等。我总是需要保持Visual Studio筛选器和项目文件的最新状态...
我需要一种有意义的工作流程 :) 我也在想,是否有更多的人不太喜欢Visual Studio,或者像我一样资源有限呢?所有DirectX程序员都在使用Visual Studio吗?

你的问题有点奇怪。DirectX位数与此有何关系?它只是一个API,你可以从任何想要的C++编译器中使用它。其他语言也一样。我们可以得出结论,你只是在寻找一个好的C++命令行编译器吗? - Paul-Jan
您可以使用Visual Studio提供的命令行编译器(CL命令)编译任何编辑器中编写的文件。如果您不想设置Visual Studio项目,也可以这样做。但我不清楚您在问什么。 - jcoder
起初,我不知道如何设置Visual Studio提供的CL编译器。我以DirectX作为外部SDK的示例,我会在Visual Studio中设置所有外部包含目录/库等,并且出于使用WINAPI的原因,我认为这是在不使用VS时应考虑的事情。我的问题是,我找不到任何可以帮助我设置这种“工作流程”的资源。 - goTAN
2个回答

3
您可以使用Visual Studio或WinDBG附加到正在运行的进程。您还可以将任何.EXE文件作为项目打开到Visual Studio或WinDBG中,以便您可以在调试器下启动该进程。因此,您工作流程的这部分不应该是问题。
话虽如此,似乎编译/构建部分是困难的。在查看Sublime Text 2的构建系统文档后,http://sublimetext.info/docs/en/reference/build_systems.html ,它似乎并没有提供支持将多个C++源文件编译为目标文件,然后将其与必要的库链接在一起。创建一个ST2构建系统来将一个C++源文件编译和链接成EXE似乎是可行的,但可能无法满足您的需求。 https://github.com/tillig/SublimeMSBuild 可能是您最好的选择,因为它既提供了在ST2中编辑msbuild文件的支持,也提供了实际构建它们的支持。虽然如此,似乎它不会自动生成或更新ST2中的C++文件的msbuild项目文件,因此您仍然需要保持msbuild项目文件的最新状态,但这项任务可以在ST2中完成,而无需使用VS。

非常感谢,你帮了我很多。现在我可以在ST2中构建我的DirectX项目。目前,我需要设置一个包含所有包括/库等的VS项目,然后我就可以在ST2中编译。由于这个MSBuild包带有一个MSbuild脚本片段,我想我也可以写自己的脚本而不用打开VS并设置项目。我还想知道在我的VS项目文件夹中确切地可以找到那些构建脚本?我实际上认为所有这些信息都存储在VC++项目文件中。 - goTAN
很不幸,关于MSBuild Package的信息并不是很多。我也不知道如何构建发布版本。 - goTAN
VC++项目文件是MSBuild文件(脚本)。MSBuild文件使用XML格式。您需要使用ST2直接打开.vcxproj文件,以便在那里进行编辑。 - Josh Heitzman
啊,好的。那我要如何告诉MSCompiler我想要一个发布版本呢? - goTAN
1
MCCompiler / cl.exe 没有Debug与Release配置(版本)的概念。虽然有一些编译器标志通常只用于其中一个配置,但编译器并没有强制执行或推断。查看由VS生成的VC++项目,您将看到它具有Debug和Release配置。然而,MSBuild知道这些配置,/p: Configuration = Release命令行开关将告诉它构建Release配置。 - Josh Heitzman
谢谢你真的帮了我。/p:Configuration=Release 完美运行。 现在我只需要找出如何在MSBuild.sublime-build文件中设置运行变量。 - goTAN

0

这个问题很久以前就被问过了,但也许这个答案能帮助到某个人,以下是我的做法:

在这种情况下,最好完全关闭 Visual Studio。你可以使用一个 makefile 来构建你的项目。你可以直接从 Sublime Text 运行 makefile 和可执行文件。

  • 设置 项目 >> 添加文件夹到项目
  • 工具 >> 构建系统 >> Make
  • 如果你还没有安装 MinGW,请先安装
  • 在文件夹中创建一个名为 'makefile' 的文件,它可以像这样:
main.exe: main.o
  g++ -o main.exe *.o -lkernel32 -luser32
  main.exe
main.o: main.cpp
  g++ -c main.cpp -o main.o

(注意:这只链接了kernel32和user32,对于DirectX,您需要更多的东西,如果您不知道,请从VisualStudio中复制它们。)

  • 按下ctrl-B

此makefile还会自动运行可执行文件。您也可以将main.exe一行替换为gdb main.exe以使用大多数系统上可用的调试器(在Windows上,您需要安装它)。


我和其他人一样是Make和GNU C的粉丝,但你有没有关于如何链接DirectX并利用GNU编译器的建议?因为上面只提供了基本的WinAPI,如果我没记错的话(从链接到kernel32user32存根来判断)。 - Armen Michaeli

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接