我想知道是否有任何可用於在Mac和Windows上運行opengl C++代碼的語法。更具體地說,在代碼的開始處,我可以放置一個if條件來確定代碼是在mac(通常是xcode)還是windows(通常是visual C++)上運行,並相應地包含頭文件。Opengl cpp代碼在Windows和Mac上運行?
0
A
回答
5
您可以使用預處理器#ifdef
。
#ifdef __APPLE__
#ifdef TARGET_OS_MAC
#include <osx.h>
#endif
#elif defined(_WIN32) || defined(_WIN64)
#include <win.h>
#endif
1
您需要抽象您的系統接口以使用適當的東西。這可以在構建時檢測到,或者可以在OS X上安裝適用於Windows版本和Xcode/Makefile項目的MSVC項目。
在Win32上,我相信你知道使用Win32 API仍然是相關。在OS X上,Carbon正在向不受支持的方向發展,因此您最小的窗口系統必須使用Objective C來實現。幸運的是,這並不是非常困難,一旦您擁有了它,主應用程序就可以執行而不用擔心了。
對於原型設計,使用像SDL/GLUT/Qt等設計的框架可能會更理想。對於生產,您將獲得更好的性能和控制,專門針對每個目標平臺。
1
如果您在C/C++中使用標準頭文件,那麼您只需要使用glut來初始化OpenGL窗口並獲取用戶的鍵盤/鼠標事件。 GLUt會爲您抽象OS層。
下面是MAC(入門)在一個鏈接的鏈接,GLUT
http://developer.apple.com/library/mac/#samplecode/glut/Introduction/Intro.html
你會發現(與操作系統無關)
這裏是GLUT下載鏈接:
http://www.opengl.org/resources/libraries/glut/glut_downloads.php
您將需要只有兩個單獨的項目文件myProject.xcode和我的Project.vcproj所有其他文件應該共享。
注意: 應該避免使用定時器和所有其他操作系統相關的東西,而應該使用GLUT給定的功能。
當爲windows/Linux/mac構建時,您將不得不鏈接相應的GLUT。
相關問題
- 1. 是否在GPU上運行opengl代碼?
- 2. Way Cross編譯C/C++代碼以在Windows,Linux和Mac OS上運行?
- 3. 無法運行在Firefox上的示例代碼和鉻在Mac
- 4. 在windows系統上運行systemml代碼
- 5. Linux OpenGL代碼失敗,適用於Mac和Windows
- 6. 將OpenGL ES代碼轉換爲OpenGL(在Mac上)
- 7. 在與Mac/Windows不同的Mac上運行PHP和MySQL
- 8. 運行MATLAB代碼在Windows
- 9. 在Windows Server 2012 R2上運行OpenGL
- 10. gui代碼在windows和linux上工作,但沒有在mac上
- 11. 在Windows上運行但在Mac上不運行的宏
- 12. 在Mac上運行C#(windows)程序
- 13. 在Mac/Windows上運行Python腳本
- 14. C#單上的MAC - 編譯和運行的代碼
- 15. 如何在Windows上編譯和運行GVim中的C代碼?
- 16. 在Mac上使用LaunchAgent運行代理
- 17. 在Mac上運行MITM代理
- 18. 可在x86 CPU上運行的OpenGL代碼?
- 19. 運行在Mac上
- 20. 在Windows和Linux上編譯代碼但不是Mac
- 21. OpenGL的C代碼在Mac OS X,但不能在Linux上
- 22. 在Mac OS X上使用現代OpenGL
- 23. 在Windows上編譯cpp代碼與gmplib時的鏈接問題
- 24. 代理mac和windows
- 25. 在mac和windows上運行Asp .Net項目
- 26. 在Windows和Mac上運行的編寫腳本
- 27. 如何在Ubuntu,Windows和MAC上運行Python腳本
- 28. 運行代碼時,Chrome瀏覽器「打開」在Mac上
- 29. 有沒有辦法在mac上運行opencl內核代碼
- 30. 用java代碼在mac上運行命令
只是我需要..謝謝你! – nitinsh99 2012-08-12 09:18:59