[精讚] [會員登入]
3276

【C++】SFML安裝於Microsoft Visual Studio 2019

此方法僅適用單個C++專案,因為一次就適用整台電腦的方式有人寫了,而且寫得非常不錯。

分享此文連結 //n.sfs.tw/14725

分享連結 【C++】SFML安裝於Microsoft Visual Studio 2019@小編過路君子
(文章歡迎轉載,務必尊重版權註明連結來源)
2020-08-22 21:37:20 最後編修
2020-08-19 15:25:29 By 過路君子
 

+

哈囉大家好,這裡是終於可以執行SFML系列簽頭的小編過路君子

根本完全用不到什麼CMake只要下載一個SFML的資料夾就可以了

 

 

以下方法小編僅在Windows上測試過確認可以使用,Mac或是其他電腦系統請斟酌使用。

第一部分 下載SFML擴充包

那廢話不多說,首先第一步當然要先去SFML的關網下載這個套件來用啦!相關網站在這裡。

可以以點擊來放大每張圖片方便看的清晰

小編這裡就是以下載2.5.1最新版本為範例。

下載下來解壓縮後會出現一個檔名為「SFML-2.5.1」的資料夾,打開大概長這樣子:

這個資料夾最好固定就放在一個位置,因為後面會需要用到關於這個資料夾的絕對路徑,這邊小編就以將此資料夾放在 "C:\Program Files" 裡面來做示範

 

第二部分 建置空白專案

安置好資料夾之後就可以正式的開啓Visual Studio來做設定了,首先先打開Visual Studio並創建一個新的空白專案。

如果各位手上有現成的專案檔也可以直接導入拿來用,但就是要找的到那個專案資料夾的位置,後面需要用到。

後面會在建立.cpp檔案的,所以這步就只先建立一個空白專案。

小編在這裡放桌面的用意只是要方便找到這個資料夾,這個資料夾存放的地方無所謂,只要之後能找到這個資料夾就可以了。

看到這個畫面之後就可以開始進行下一步囉。

 

第三部分 建置CPP

記得要建置在「資源檔」這個資料夾下面,小編不知道建置在其他資料夾下能不能正常運作。

確認一下有沒有在「資源檔」這個資料夾下面出現一個 "Source.cpp" 的檔案,如果有的話就代表成功了喔。

 

第四部分 導入SFML檔案

這一部分會稍稍有點複雜,小編會放慢速度來圖解;另外,這部分會用到剛剛我們下載和建置空白專案時所產生的資料夾,可以先將這兩個資料夾翻出來並打開。

如果發現開啟的屬性頁跟上圖右下角的屬性頁,那就代表沒有點擊一下上圖一號紅框的位置,點擊一下就可以了。

上圖第四步驟在一開始預設應該是「作用中(Debug)」,要切換成「所有組態」才是正確的,若無切換,後面會出錯。

找到剛剛下載的SFML資料夾,找到include點進去之後複製這個檔案的絕對位置

把剛剛複製到的絕對位置貼到上圖畫紅底線的地方,然後按一下套用先儲存。

一樣回到這個畫面,點進 "lib" 這個資料夾裡面,一樣再複製那個檔案的絕對網址,貼到第三步底線的地方,最後方一定要出現 '/lib' 才是正確的(如上圖)。

記得要從C/C++下的「一般」簽頁來到連結器下的「一般」簽頁喔。

現在要從「一般」簽頁切換到「輸入」之後找到上圖第二步紅色底線的位置並且將下面的文字貼進去,像上圖框處那樣,原本裡面所預設的訊息不用刪除。

sfml-graphics.lib;sfml-system.lib;sfml-window.lib;

當然SFML不只這三個功能,若還有需要可自行增加 "sfml-network.lib"、"sfml-audio.lib" 等,這邊就以運行程式時所需的基本三個為主。

這一步很重要,先將剛剛的「所有組態」切換成「Debug」,建議別切成「作用中(Debug)」不一定但有機會出錯。

把剛剛在上方輸入的 "sfml-graphics.lib;sfml-system.lib;sfml-window.lib;" 改成以下:

sfml-graphics-d.lib;sfml-system-d.lib;sfml-window-d.lib;

如果剛剛在上面有添加 "sfml-network.lib"、"sfml-audio.lib" 等也記得要改成 "sfml-network-d.lib"、"sfml-audio-d.lib" 之類的喔。

接下來就可以回到這熟悉的畫面了~對了,還沒結束。

 

第五部分 添加.dll檔案

還記得我們所創立的資料夾還有一個資料夾還沒使用嗎?對,沒錯,就是我們在一開始所創建的SFML資料夾,現在終於要來料理他了。

還記得我們剛剛在上面的步驟中已經開啟了SFML-2.5.1的bin資料夾了嗎。

找到我們剛剛在Visual Studio裡創建的資料夾,直接全部複製貼進去。

丟進去後大概會像這樣子,然後就可以把我們下載下來的SFML-2.5.1資料夾關閉了,後面不會再用到。

回到Visual Studio裡面執行模式選擇Debug,之後將下方的程式碼全部貼進去。

看到上方的畫面就代表成功了,如果只有出現cmd視窗那就在給他一點時間,綠色圈圈第一次產生要花一點時間。

 

第六部分 Debug和Release資料夾更新

上面的貼入程式碼執行的步驟只是為了在SFML資料夾裡面產生一個「Debug」資料夾,接下來我們會針對這個資料夾以及Release細項來做設定。

雖然在Visual Studio可以正常執行,卻一跳出來就出錯,我們現在就是要來解決這個問題。

返回上一層將前幾步貼入的那11個檔案也貼進來,再次執行.exe檔案,成功執行!

將執行模式從Debug切換至Release,再讓Visual Studio以相同的方式產生一個Release資料夾,Release資料夾也要將這11個檔案貼進去

回到資料夾一開始,將那多餘的11個.dll刪除,恭喜!全部步驟到此結束,可以開始正常使用了。

如果之後有又另外新增一個新的專案,請把上述所有步驟都再跑一次,此方法僅適用於單個專案內。

 

 

當初要放進去的原因只是為了能讓Visual Studio成功執行並產生「Debug」資料夾,而將Debug裡面添加也添加.dll就是為了讓.exe檔案和Visual Studio可以不用在依賴外面的.dll檔案來執行,所以當我們一建置好Debug和Release資料夾之後,外面的.dll檔案便沒有用了,可以刪除了。

當然,也可以不貼程式碼執行讓Visual Studio以建置方案的方式來創建資料夾,在添加.dll以及其必須檔案,小編在此僅提供一種方法給各位參考。

如果有想要分享自行使用SFML所撰寫的程式(.exe)給他人使用,請把那11個.dll檔案連同.exe放在同一個資料夾裡面壓縮(.zip)之後再一起寄過去給對方,只有寄.exe過去給對方的話還是一樣會顯示錯誤訊息給對方看。

 

 

 

後記:

之前因為要貼的程式碼不長,所以就只是用一個框框來帶過,但小編沒寄錯的話有一篇還是用藍色框框全部放出來,造成板面過長和不好看,所以這次遇上一樣要貼長原始碼的時候就使「偽cmd」的方式來呈現,改進上一次的不足以及遺憾。

舊的那篇文章還是會維持原來的方式呈現,不會也更新成這篇文章所使用的「偽cmd」方式,就當留個紀錄吧,看越寫會越進步多少。

END

你可能感興趣的文章

【PaperMC - API】如何發送指令到伺服器內 How to sending or executing commands to server

【JAVA】[java.lang.Class]如何不透過new來實體化class 在某些極端狀態下,我們沒有辦法直接將實體化後的 Object 傳入函數內,只能採用傳入 Class 在實體化成物件這種極端的方式來進行

【MySQL Workbench】如何透過TCP/IP進行SSL連線到遠端MySQL資料庫 通常MySQL伺服器都不是只提供某人連線,而是多人都可以連線進來使用,這時就不能繼續使用localhost的那種寫法

【Discord bot 2.0.1】(discord.ui.View)如何將舊機器人升級至目前最新版本 很多時候升級軟體是為了讓別人覺得你的程式很先進,但這次卻是因為要使用某個新功能

【C++】使用struct array和一維int array模擬二維int array 主要是因為用sort去排序int array的二維陣列小編懶得研究,於是就研究了一種維持一維陣列但是有二維陣列效果的程式,小編就廢~~

【Nexus Repository Manager】(deploy)使他人可以對遠端資料庫做讀寫 使用 Nexus Repository Manager 來讓各個工程師控制自己的 Jar 包,不會有 Github Merge Crashed 問題。

我有話要說

>>

限制:留言最高字數1000字。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

高捷少女:地下城的探險少女① 婕兒心中一奇,便走上前看著仔細。那塊凹進去的地方中心大約三公分厚,越往邊緣就越淺,圓型直徑十五公分。婕兒拿出銅盤對比一下,發現兩者大小竟然一致,銅盤似乎能夠完整的嵌進去。     婕兒看著凹槽,心中

高捷少女:地下城的探險少女(終)  小穹眨眨眼睛,然後說了出來。「其實,從剛剛開始,我就在想了……是在看過這本日記之後。」她拿出日記。「我想……我們尋找寶藏的想法,是不是真的正確的?」「怎麼說呢?」耐耐好奇地問。「這個埋藏寶藏的人,在

艾米莉亞和高捷戀旅3① 「既然艾米莉亞小姐也來了,就把那個拿出來吧。」美麗島捷運商店的負責人說完,一名工作人員推著一個大箱子進入辦公室。他將箱子打開,將裡面的東西抬出來。艾米張大嘴巴

艾米莉亞和高捷戀旅⑤ 「小滷,這位先生是誰呢?」果果問道。「○○!」小滷說:「他是曾經在中國四川省的國營餐廳擔任大廚的上等大廚師,是一位精通川菜的料理達人。據說學過中國料理的人,沒有一個不知道他。」

【數學】線性規劃——題型演練 某公司招聘新員工,共有800人應徵參加筆試。筆試場地借用某高中教室,該校租借的大教室有42間,每間可容納40人,每間租金