0

今天晚上我准备进入 Ludum Dare,我真的很沮丧,因为我无法将我的项目构建成一个独立的 .exe。

我觉得这个问题至少被问了 100 次,但我找到的答案都没有帮助我......我真的不明白静态链接是什么或如何做到这一点,而那并不甚至看起来都不是我问题的解决方案;我不介意我是否将一堆 .dll 文件与我的程序一起发送出去,我只是希望程序能够自行运行,以便我可以在比赛结束时提交它。

基本上,我的 Visual Studio (2010 Express) 配置完全遵循LazyFoo 的设置教程。当我从 Visual Studio 启动程序时,在调试和发布配置上一切都运行良好,但是当我导航到项目的 Debug 或 Release 文件夹并尝试运行 .exe 时,程序abort()因被调用错误而中断,或者他们给了我错误“X程序已停止工作”。

我将我的所有 DLL 都包含在与放置可执行文件相同的文件夹中,并且游戏在 VS 内部运行得非常好,但我似乎无法弄清楚如何将其编译为独立的 .exe (甚至包括一个充满 dll 的文件夹)而不会分崩离析。

有人可以给我一个非常精确的方法来让它工作吗?任何帮助都会很棒。

4

1 回答 1

2

如果你有一个 EXE,那么你的程序正在编译。最有可能在调试模式下,程序使用特定目录作为当前工作目录(CWD) 运行,但是当您作为独立运行它时,CWD 是不同的。

CWD 会影响可加载的 DLL 以及使用相对路径(即不以 [反] 斜杠开头)的任何文件的搜索。这可能是你的问题:纹理、图形、配置文件、字体......

我的建议是在调试运行(有一个选项)中将 CWD 设置为与 EXE 完全相同,这是运行 EXE 时的默认设置。然后你就可以调试你的崩溃了。

于 2013-08-23T20:50:08.147 回答