【VS2013编译DirectX Tutorials时遇到的错误】FXC : error X3501: 'main': entrypoint not found
修改于2015年9月6日:
去年写这篇解决方案的时候其实对着色器编程还一知半解,摸索了一个治标不治本的方法解决问题,结果被一个CSDN的博主原封不动抄了去,还打上个原创的标签= =,简直无语。。。
最近重新开始深入学习DX,对这个问题摸索到了更合理的解决办法,在此重新记录一下。
本文为大便一箩筐的原创内容,转载请注明出处,谢谢:http://www.cnblogs.com/dbylk/p/3696949.html
2014年4月的解决方案:
这个问题出现的原因是将.fx文件(着色器文件)导入自己新建的工程以后,VS2013会默认使用HLSL编译器对其进行编译,而.fx文件中并未定义main函数,所以会导致编译出错。
解决方法是:
右键.fx文件,“属性->配置属性->常规->项类型”,将“HLSL编译器”改为“不参与生成”
2015年9月的解决方案:
按照正常的DirectX程序执行流程来说,着色器文件是在程序启动的时候才被编译与执行,但如此一来,当着色器程序出现语法错误时Debug便变成了一个噩梦。
因此,VS2013为大家提供了一个人性化的功能,那便是在程序编译时加入了对着色器代码的语法检查。去年写这篇博文时提供的解决方法便是让编译器跳过了对着色器的语法检查,从而让程序能够正常运行。
本人博客地址,防止无脑抄袭,影响阅读见谅:http://www.cnblogs.com/dbylk
那么问题来了:
为什么在着色器代码在能够正常执行的情况下编译器还会对着色器文件报“entrypoint not found”的错误呢?
这个问题的答案如下:
不同于C/C++程序,着色器程序的入口函数名是可以由用户自己定义的,而VS2013将着色器程序的默认入口函数名与C/C++一样设为了“main”,而DirectX Tutorial中的着色器代码并不不是以“main”作为程序入口点,所以才会报出上述的错误。
新的解决方法如下:
1. 右键.fx文件,“属性->配置属性->常规->项类型”,将它的值改为“HLSL编译器”
2. 点击右下角的“应用”按钮,会发现左边的“配置属性”菜单中多了一个“HLSL编译器”的菜单,点开后选择“常规”
3. “入口点名称”改为着色器文件中对应的函数名
4. “着色器类型”改为对应的着色器类型(一般为顶点 or 像素着色器)
5. “着色器模型”改为对应的着色器版本
使用这个方法就可以在解决问题的同时使用VS2013对着色器代码进行语法检查了,OVER!
【VS2013编译DirectX Tutorials时遇到的错误】FXC : error X3501: 'main': entrypoint not found的更多相关文章
- 【VS2013编译DirectX Tutorials时遇到的错误】"const wchar_t *" 类型的实参与 "LPCSTR" 类型的形参不兼容
本文为大便一箩筐的原创内容,转载请注明出处,谢谢:http://www.cnblogs.com/dbylk/p/3696367.html 通过查看LPCSTR的定义: typedef _Null_te ...
- 【VS2013生成DirectX Tutorials时遇到的错误】无法解析的外部符号 _D3D10CreateDeviceAndSwapChain@32
本文为大便一箩筐的原创内容,转载请注明出处,谢谢:http://www.cnblogs.com/dbylk/p/3696472.html 今天尝试编译DirectX10中的一个Turorials时, ...
- Linux:编译动态库时遇到的错误relocation R_X86_64_32 against `a local symbol'
编译动态库时遇到如下错误: ... ... relocation R_X86_64_32 against `a local symbol' can not be used when making a ...
- VS2008项目使用VS2015打开时,出现错误: error CS1012: Too many characters in character literal
VS2008项目使用VS2015打开时,出现错误: error CS1012: Too many characters in character literal ------------------- ...
- 启动webpack-dev-server错误,ERROR in main.js from UglifyJs Unexpected token: name «element», expected: punc «;»
启动webpack-dev-server出现以下错误 ERROR in main.js from UglifyJsUnexpected token: name «element», expected: ...
- 解决 Maven项目进行编译( mvn compile )时出现的错误
错误信息: 在 pom.xml 文件 设置一下Maven的属性 <!--Maven 属性--> <properties> <!--项目的编码格式--> <pr ...
- 编译Cython代码时遇到的问题: fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'
使用python setup.py build_ext --inplace命令编译cython代码, 出现以下错误: Compiling cython_example.pyx because it c ...
- 编译php5.4的时候出现错误----configure: error: in `/usr/local/src/php540/php-5.4.0':
错误如下:checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep - ...
- 编译android程序时DEX过程出现错误
今天编译高级设置时出现了错误,这好坑爹啊~ 于是我开始检查代码,发现代码没有错误啊,然后观察MAKE的步骤才发现是DEX时出现了问题!! 下面是错误的LOG: Information:Using ja ...
随机推荐
- (4.4)dbcc checkdb 数据页修复
转自:http://blog.51cto.com/lzf328/955852 三篇 一.创建错误数据库 以前看Pual写过很多数据恢复的文章,他很多的测试都是自己创建的Corrupt数据库,其实我们自 ...
- Windows 上将Tomcat 8 安装为系统服务
第一部分 应用场景 需要服务器上Tomcat不显示启动窗口 需要服务器上Tomcat开机自启动 ... 第二部分 配置过程 一.修改配置文件 1 {Tomcat_HOME}/bin/service.b ...
- nginx基础系列
centos中搭建nginx环境 nginx开机启动 nginx配置文件说明 nginx负载均衡配置 nginx upstream模块 nginx配置ssl nginx日志切割 nginx平滑升级
- 由于Redis漏洞导致服务器被黑
原文地址 漏洞描述 Redis默认情况下,会绑定在0.0.0.0:6379,这样将会将Redis服务暴露到公网上,如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问Re ...
- CS224n学习资源汇总
一.课程网站: http://web.stanford.edu/class/cs224n/archive/WWW_1617/index.html 二.视频(中文字幕) http://www.mooc. ...
- vim之可视化
参考文档:http://blog.csdn.net/ii1245712564/article/details/46960387 先梳理关键知识,方便查阅 v(小v):进入可视化 V(大V):进入可视行 ...
- Safari通过JavaScript获取系统语言
IE6 IE7 IE8 Firefox Chrome Safari Opera navigator.language undefined zh-CN zh-CN navigator.userLan ...
- 面对 to B 业务该如何构建研发管理体系?
未来离我们越来越近,而过去并未走远,我们发现科技公司2B业务兴起,腾讯认为互联网下半场属于产业互联网,需要进行一次重要的战略升级.它们在国庆节最后一天进行新一轮组织架构调整,最亮眼的就是新成立云与智慧 ...
- gem Errno::ECONNRESET: Connection reset by peer - SSL_connect
问题描述 在使用gem安装软件包时,会时常遇到下面的问题: ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError) Errno: ...
- php数组函数-array_rand()
array_rand()函数返回数组中的一个随机键名,或者如果指定函数返回键名不止一个,则返 回一个包含随机键名的数组. array_rand(array,number); array:必需.规定数组 ...