【发布时间】:2018-05-18 17:49:00
【问题描述】:
我正在尝试编译并运行以下代码:
#include <iostream>
#include <SDL.h>
#include <SDL_net.h>
#include <cstring>
using namespace std;
int main(int argc, char **argv)
{
printf("result of SDL_Init is: %i\n",SDL_Init(SDL_INIT_EVERYTHING));
printf("result of SDLNet_Init is: %i\n",SDLNet_Init());
}
代码编译正常,但运行时出现错误:
应用程序无法正确启动 (0xc000007b)。点击确定关闭应用程序
我之前已经成功编译并运行过 SDL 代码,但这是我第一次尝试 SDL_Net。
我正在使用带有 MinGW GCC 编译器的 Windows 上的 Code::Blocks,我正在为 SDL 使用 x86_64-w64-mingw32 库,这些是我的链接器设置(我知道其中一些不是立即需要的) :
-lmingw32 -lSDL2main -lSDL2 -lSDL2_image -lSDL2_ttf -lpthread -lSDL2_net
有人知道这里发生了什么吗?
//预计到达时间:
如何解决这个问题不将我所有的东西都切换到 32 位?
谢谢,
【问题讨论】:
-
感谢您的链接。这些线程中的解决方案涉及将应用程序更改为 32 位。如果我想要 64 位应用程序怎么办?
-
好的,所以我只是尝试将我的编译器切换到MinGW-W64,并将其设置为项目编译器,但编译结果没有变化。
-
我猜是最后一点,但我注意到我的 Q 已被标记为重复。我问这个模糊的问题“这是怎么回事?”是我的错。这确实在其他地方得到了回答。我希望收到“我该如何解决这个问题?”的答案。
-
@S.M.这个问题在 //ETA 部分得到了澄清。我不想将我的应用程序切换到 32 位,就像他们在另一篇文章中所做的那样。另外,我正在 Code::Blocks 中编译,其他答案与 VS 有关。这不是重复的,因为这些答案不适用于我的问题。我不知道如何将其取消标记为重复,但请这样做,或者更好地解释我的实际上是如何重复的。