我最近開始學習OpenGL以開始使用C++製作一些圖形應用程序。我已經安裝了OpenGL SDK,並且能夠在其上正確構建項目。然而,在OpenGL SDK網站上,關於如何使用SDK的元素創建新項目(例如freeglut等),幾乎沒有任何信息。我有Premake 4.0,我知道我必須對lua文件,但我不知道lua,但不知道如何使用Lua文件創建一個新項目。那麼你能幫我嗎?我使用VS2010,我應該創建項目,然後用premake做些什麼?或者創建一些lua文件,然後使用premake呢?任何幫助都會很棒,因爲我很迷茫,並且很想開始使用OpenGL。我對此做了很多嘗試,例如複製sdk中的lua文件,但沒有運氣。OpenGL SDK如何使用Premake創建新項目
回答
如果您不熟悉Premake4,那麼我強烈建議您直接使用Visual Studio項目。如果您遇到了問題,請修改您的問題,確切地說是您所做的事情,以及Visual Studio在嘗試構建時給您的錯誤消息。您應該包括:
- 包含路徑。 完整一組包含路徑,包括完整的絕對目錄名稱(包括項目和解決方案文件的路徑)。
- 靜態庫搜索路徑。
- 您正在使用的靜態庫。
- 您正在構建的定義。
注意:如果您不知道這些是什麼,那麼您需要停下來學習更多關於C++項目的工作方式。您需要了解編譯器如何處理包含路徑,靜態庫,#define語句等
如果你不熟悉Premake4,你仍然要使用Premake4與SDK,那麼你首先必須變成熟悉Premake4 沒有的SDK。我可以給你一個完整的premake4.lua腳本,你可以直接插入,修改幾行代碼,所有東西都會神奇地工作(如果你需要的話,你可以看看SDK的例子是如何構建的,特別是examples/premake4.lua
)。但如果我這樣做,你不會學什麼什麼。你只是複製和粘貼代碼,而沒有絲毫理解它是如何工作的。
所以相反,我要告訴你,你應該採取什麼步驟學習如何使用Premake4。
步驟1: Hello World,Premake風格。您應該創建一個Hello World應用程序的單個.cpp文件。它只有一個標準的main
功能,可將「Hello World」打印到控制檯。這是很容易的部分。
困難的部分是Premake4腳本。而不是直接創建Visual Studio項目,您將編寫一個Premake4腳本來爲您構建該項目。
Premake4文檔可以引導您完成製作first solution and project的步驟。你當然需要add files to that project。你也應該learn how to use configurations,這樣你可以有一個調試和發佈版本。 Debug版本應該有符號,Release版本應該被優化。
第2步:多個項目。在這裏,您有兩個.cpp文件:test.cpp
和main.cpp
。在test.cpp
中,放置一個打印內容的函數。該函數不應該帶參數或任何東西。在main.cpp
中,您應具有調用test.cpp
中定義的函數的main
函數。還應該有一個test.h
,它具有test.cpp
中定義的功能原型。
這裏的訣竅是你沒有將它們編譯成相同的可執行文件。不直接。您需要兩個項目:一個名爲test
,另一個名爲main
。 test
項目應該是一個靜態庫,它編譯test.cpp
。 main
項目將是實際的可執行文件,編譯main.cpp
。他們都應該在文件列表中包含test.h
。
在這裏,您正在瞭解解決方案可以有多個project
s。這兩個項目有不同的文件列表。每個項目都可以有一個單獨的kind
,它決定了該項目的構建類型。 test
項目應該是StaticLib
,而main
項目應該是ConsoleApp
。
您還需要學習使用links命令將它們鏈接在一起。 main
項目應使用links
來指定test
。 test
不需要鏈接到某些東西。
步驟3:掌握目錄。
在這裏,你將做與步驟2相同的事情。除了一件事:將test.h
和test.cpp
放在不同的目錄(當前子目錄)中。您還希望該目錄中有一個test.lua
文件,您將使用dofile
命令從主premake4.lua
文件執行該文件。 test.lua
是您定義test
項目的地方。您可以在使用solution
命令創建解決方案後隨時通過test.lua
文件致電dofile
。
請注意,main
項目將需要更改它找到的目錄test.h
。您還需要使用main
項目中的includedirs
命令告訴編譯器在main.cpp
中包含的搜索test.h
標頭的位置。
第4步:返回SDK。此時,您應該熟悉Premake4回顧instructions I pointed you to,並更好地理解它們。然後,按照指示說的去做。當它告訴你腳本的第一行應該是什麼時,把它作爲腳本的第一行。把它放在UseLibs
函數的地方,它甚至會給你一個例子。將UseLibs
想象爲links
和includedirs
的奇特組合。
當我建立時,我不認爲應該有隨機錯誤。我現在真的很累,所以我放棄了晚上。我認爲你已經對我的問題感到厭煩了,所以我不會問你關於我的問題,因爲我知道你可能從我這裏聽到了消息。可能只是把整個冒險做起來,我已經用OpenGL一步一步地跟蹤了每一個單詞,每次我得到一些錯誤,無論我多麼努力地研究,我都找不到廢話。 (這樣你就知道錯誤出現在第2步,這是我從未見過的小錯誤。) – user1032369
@ user1032369:可悲的是,除非你告訴我,否則警隊並沒有給予我足夠的知識去了解你的錯誤。除非你告訴我你真的有什麼問題,否則我無法幫助你。也許你可以把它放在另一個Premake特定的問題中,而不是在這裏發表評論(這不是論壇)。如果你這樣做,請確切地說明你在做什麼,包括所有相關文件,以及在你嘗試構建時到底發生了什麼錯誤。您提供的信息越多,我們就越有可能爲您提供幫助。 –
昨晚我發佈了這條評論,因爲我根本無法獲得第2步的工作,而這是凌晨1:30,所以我不會因爲我的錯誤而成爲奴隸。我現在會用我的問題發佈一個新問題。我知道這不是一個論壇,你是不斷回覆我的評論的人。 – user1032369
- 1. 使用OpenGL函數「UseLibs」使用premake時出錯sdk
- 2. 如何使用SDK創建TFS 2010團隊項目?
- 3. 如何創建一個新的Visual Studio項目以使用Affdex SDK
- 4. 創建新項目
- 5. 使用PhoneGap創建一個新項目
- 6. 使用DjangoCMS創建新項目
- 7. 使用Spring和Hibernate創建新項目
- 8. 使用AppFuse的創建新的項目
- 9. 使用fpcomplete創建新項目
- 10. 使用eclipse創建新的svn項目
- 11. 如何使用Bitnami DjangoStack創建項目?
- 12. 如何使用DTE創建WebApi項目?
- 13. 如何使用Qt創建子項目?
- 14. 如何使用EGit創建Eclipse項目
- 15. 如何使用舊列表中的項目創建新列表?
- 16. 如何使用xcode爲iPad創建新的cocos3D項目?
- 17. 如何使用Maven創建新的Eclipse RCP項目?
- 18. 如何使用現有文件創建新的Xcode項目?
- 19. 如何爲Android項目創建新的佈局(使用Eclipse)
- 20. 如何使用WIQL在TFS中創建新工作項目
- 21. 如何使用Eclipse EGit從GIT倉庫創建新項目
- 22. 如何使用AppleScript在XCode中創建新項目?
- 23. Laravel:如何使用另一個項目的composer.json創建一個新項目
- 24. 如何使用Maven構建帶有庫項目依賴項的Android SDK項目
- 25. 使用git從項目骨架創建一個新項目
- 26. 遷移項目或創建新項目
- 27. 無法在android SDK中創建項目
- 28. Laravel創建新項目
- 29. Geddy - 創建新項目
- 30. 創建新的Gerrit項目
您是否在談論[此SDK?](http://glsdk.sourceforge.net/docs/html/index.html)如果是這樣,它[有關如何將它用於項目的說明,包括Premake和無](http://glsdk.sourceforge.net/docs/html/pg_use。html) –
是的,SDK <然而那裏的說明並沒有提供關於premake文件的許多信息,以及我需要做什麼,以及premake,vs2010和lua文件。 – user1032369
@ user1032369用正確的參數調用premake,然後得到一個'* .sln'文件,通常在名爲'vs2010'的文件夾中(如果爲該系統生成的) – PeterT