首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >简单的GLSL着色器会导致"1:‘欧元’:意外标记“编译错误

简单的GLSL着色器会导致"1:‘欧元’:意外标记“编译错误
EN

Game Development用户
提问于 2022-12-26 07:47:02
回答 1查看 110关注 0票数 1

我这里有一个非常简单的着色器:

代码语言:javascript
运行
复制
#version 460

layout (location = 0) in vec3 inPos;
layout (location = 0) out vec3 outPos;

void main() {
    gl_Position = vec4(inPos.x, inPos.y, inPos.z, 1.0);
    outPos = inPos;
}

并使用以下命令编译着色器:

代码语言:javascript
运行
复制
glslangValidator -V -G -o triangle.vert.spv triangle.vert

编译器转出了3个错误:

代码语言:javascript
运行
复制
error : #version: ES shaders for SPIR-V require version 310 or higher
error : Source\Shaders\triangle.vert:1: '€' : unexpected token
error : Source\Shaders\triangle.vert:1: '' : compilation terminated

看来编译器在读取代码的第一行时遇到了困难。我非常肯定我没有在这个中包含一个欧元符号,语法应该是正确的。

我该怎么解决这个问题?

EN

回答 1

Game Development用户

回答已采纳

发布于 2022-12-26 08:11:40

事实证明,这个问题确实是由文件- BOM (https://en.wikipedia.org/wiki/Byte_订单_标记)的最初字节引起的。

我正在使用Jetbrains,对我来说,修复是File Encoding -> Remove BOM

票数 2
EN
页面原文内容由Game Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://gamedev.stackexchange.com/questions/203835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档