我使用在Windows 7上的MinGW如何使用g ++編譯和鏈接庫(SDL),以便擁有獨立程序?
簡單地說,我想創建一個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注入'的研究的想法,因爲目前這似乎是一個熱門的安全主題。 – john
您的編譯器找不到頭文件SDL/SDL.h,您可能需要使用'g ++ -IC:/ SDL test.cpp -lSDL'或其他東西(抱歉,我不確定SDL安裝的外觀)。 – john