程序在一台机器上编译,但不在另一台机器上编译
Posted
技术标签:
【中文标题】程序在一台机器上编译,但不在另一台机器上编译【英文标题】:Program compiles on one machine but not the other 【发布时间】:2016-01-24 10:17:38 【问题描述】:我想指出我仍在学习,很明显我缺少一些东西。
但重点是:
对于我的任务,我们必须制作一个显示交互式场景的简单游戏。
所以我在我的计算机上编写了所有代码,一切正常,代码编译并且程序完全按照预期运行。
我决定把它移到我的笔记本电脑上,因为它明天到期,现在我遇到了问题。
当我尝试编译完全相同的代码时,Visual Studio 在以下行显示错误:
_programID = glCreateProgram();
这在我的桌面上运行良好。
它说“在 Project.exe 中的 0x00000000 处引发异常:0x00000005:访问冲突执行位置 0x00000000。”
两台机器上的代码实际上是相同的。
两台机器都使用 Windows 10 和完全相同版本的 Visual Studio。
我还将我的库与解决方案目录相关联,因此路径错误不是问题。
可能是什么情况?我真的不明白为什么会这样。我已经复制了整个文件夹以及与项目一起使用的所有库和其他头文件。
我想可能是因为我使用的是在我的桌面上编译的库?这有关系吗?
请帮忙。
【问题讨论】:
尝试在有问题的机器上更新您的显卡驱动程序。 这意味着扩展/opengl 版本没有正确加载。因此函数指针 glCreateProgram 是一个空指针。你如何初始化上下文?笔记本用的是哪个显卡? 感谢您的回答。自从上次格式化以来,我认为我没有在这台笔记本电脑上安装显卡驱动程序,所以我现在就安装它,看看它是否有效。 【参考方案1】:我写这个以防将来有人遇到类似的问题:
问题出在笔记本电脑上的显卡驱动程序上。在我最后一次格式化之后,我没有安装驱动程序(没有真正考虑过,因为我的笔记本电脑只用于办公室和简单的视觉工作室的东西),这导致 OpenGL 函数抛出错误。安装驱动程序解决了这个问题。
非常感谢@Humam Helfawi。
【讨论】:
以上是关于程序在一台机器上编译,但不在另一台机器上编译的主要内容,如果未能解决你的问题,请参考以下文章
rust交叉编译配置:windows上编译linux可执行程序