我想知道是否有任何可用于在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