【发布时间】:2012-11-01 07:19:32
【问题描述】:
我在 Windows 7 上使用 MinGW。
简单地说,我想创建一个 Hello World SDL 程序(启动一个窗口或一些简单的东西),然后编译它,以便我有一个可以分发的独立程序,例如,用户不必安装任何额外的东西(比如将SDL.dll 放在 Windows 文件夹中)。
- 我已经下载了 SDL 开发库,目前是
坐在
c:\SDL。 - 在我的项目文件夹中,我有
test.cpp和SDL.dll
我不太确定下一步该做什么;起初我以为我可以包含 SDL,然后只需在命令行中链接到 DLL,瞧,但也许我需要先用我的程序编译 SDL 开发库?我唯一的目标是将我的 SDL 程序打包在一个文件夹中,我可以将其分发到其他 Windows 平台,而无需他们安装任何额外的东西 - 或者他们肯定需要在 Windows 文件夹中安装 SDL.dll?
编辑:进一步澄清 - 有人可以描述我要采取的步骤吗?我的意思是,想要分发他的应用程序的开发人员会做什么?安装此类应用程序时,大多数游戏安装程序是否实际上将.dll 文件放在Windows 文件夹中?
来源(test.cpp):
#include <SDL/SDL.h>
#include <iostream>
using namespace std;
int main ()
{
cout << "Hello World!";
return 0;
}
文件夹:
test.cpp
SDL.dll
命令行:
g++ test.cpp -lSDL
输出:
test.cpp:2:17: fatal error: SDL.h: No such file or directory
compilation terminated
【问题讨论】:
-
他们肯定需要 SDL.dll,但它不必位于 Windows 文件夹中。如果您愿意,可以从任何地方加载它。查找 LoadLibrary Windows API。对“DLL 注入”进行一些研究可能是一个想法,因为这似乎是目前的热门安全话题。
-
您的编译器找不到头文件 SDL/SDL.h,您可能需要使用
g++ -IC:/SDL test.cpp -lSDL或其他东西(抱歉,我不确定 SDL 安装的外观如何)。
标签: c++ compilation sdl