VS2019-写opengl时Bugs合集(持续更新)
ERROR::SHADER::PROGRAM::LINKING_FAILED
Attached vertex shader is not compiled.
相对路径返回上一级用"../../../",而不是"./././"
(VS)链接器是如何工作的?
https://www.bilibili.com/video/BV1df4y1v74h?from=search&seid=12761221660389034664&spm_id_from=333.337.0.0
SOIL unresolved external symbal …
用VS使用SOIL.h库报错解决方法:
在SOIL信息报错的下面看到了目前所用的SOIL.h是32位的,而我的project是64位的(但是unrexolved external symbal 的报错大多其实是链接器链接文件失败,而不是文件的版本不兼容报错,并且报错的信息和文件版本不兼容报错信息相同,详细见下一点),所以把SOIL.h和SOIL.lib删掉,再下载对应的64位文件SOIL.h和SOIL.lib,
再在属性properties中修改C/C++常规中的附加包含目录、链接器的常规中的附加库目录、链接器的输入中的附加依赖项即可(注意我这里是相对路径)
https://stackoverflow.com/questions/30145555/soil-unresolved-external-symbols
unresolved external symbal…
如果此错误是链接器链接失败导致(即你只是将你要的第三方库文件下载并且移到你的VSproject文件夹中,同时在项目文件.sln中配置了相关属性,完成了上一点提到的三个修改操作),在生成文件(build)时报链接错误"(LINKED error) unresolved external symbal _imp_CreatDC referenced in function… "
需要找到函数"CreatDC"所在library(
https://docs.microsoft.com/en-us/windows/win32/api/wingdi/nf-wingdi-createdca
这种类似的页面然后滑下去),将library填到链接器的输入中的附加依赖项中
VS源文件中头文件引用头文件#include <GL/glew.h>等语句报错,没有找到相关头文件(即你只是将你要的第三方库文件下载并且移到你的VSproject文件夹中,还没有在项目文件.sln中配置相关属性):需要操作三步(上文说过)
VS中常常有报错"LINK : warning LNK4098: 默认库“LIBCMTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library"等warning,其实可以放着不管,先把warning解决掉再说,但是warning可能会提示很关键的错误,比如上文提到的所用库适应版本不兼容报错"SOIL.lib的版本是32位的,与64位的project不兼容"
error C2664: “GLuint loadTexture(GLchar *)”: 无法将参数 1 从“const char [30]”转换为“GLchar *”
解决方法:
改成"否"
https://blog.csdn.net/weixin_42655134/article/details/107088809?ops_request_misc=&request_id=&biz_id=102&utm_term=%E6%97%A0%E6%B3%95%E5%B0%86%E5%8F%82%E6%95%B0%201%20%E4%BB%8E%E2%80%9Cconst%20char%20%5B29%5D%E2%80%9D%E8%BD%AC%E6%8D%A2%E4%B8%BA%E2%80%9C&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-107088809.pc_search_es_clickV2&spm=1018.2226.3001.4187
缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
网上的解决方法不能解决我的问题, 因为打开报错的文件,发现并没有出现文中那种将class类定义为了一个头文件的情况,所以问题应该不是在这里
解决方法:
看看自己main函数里引用的.h头文件在哪里(我一开始是将头文件和第三方库的头文件放在了一起,所以出错了。后面我测试了下发现不能直接将自己写的头文件手动移到源程序文件夹main的相同目录下,仍会报错,猜测是因为在项目文件.sln中并没有记录好你的操作所以编译仍会出错)
后面在解决方案资源管理器中的头文件右键新建头文件
然后命相同名字,然后把代码复制过来即可解决问题
https://blog.csdn.net/iteye_21202/article/details/82445716?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164035902716780271566882%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=164035902716780271566882&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~baidu_landing_v2~default-1-82445716.pc_search_es_clickV2&utm_term=%E7%BC%BA%E5%B0%91%E7%B1%BB%E5%9E%8B%E8%AF%B4%E6%98%8E%E7%AC%A6+-+%E5%81%87%E5%AE%9A%E4%B8%BA+int%E3%80%82%E6%B3%A8%E6%84%8F%3A+C%2B%2B+%E4%B8%8D%E6%94%AF%E6%8C%81%E9%BB%98%E8%AE%A4+int&spm=1018.2226.3001.4187
总结
以上是生活随笔为你收集整理的VS2019-写opengl时Bugs合集(持续更新)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: EOJ_1102_任务调度问题
- 下一篇: ssh、私钥、密钥理解