最近需要为个人项目ShaderLab添加内嵌的代码编辑窗口功能,支持语法高亮和Intellisense,最初使用了QCodeEditor,发现这个第三方的库对词法分析的实现效果不太行.
代码换行后直接缩进到首行,无法定位到前一句的首行
考虑换QScintilla,支持语法高亮、错误指示、自动补全(code completion)和函数提示(call tips),毕竟Notepad++是基于Scintilla的开源编辑器,并且提供QT的支持,功能肯定是比一些独立开发者开发的代码编辑器要强大的
源码编译参考该网址
在用nmake编译的过程中出现无法打开包括打开或包括文件"type_traits"
找了很多博客,也尝试修改qmake生成的makefile文件,还是不行。
最终的解决办法可以参考这位大佬的博客
打开配置环境变量,在用户变量新建INCLUDE和LIB
nmake编译时会搜寻用户变量下的INCLUDE文件夹作为包含头文件,LIB目录下的文件夹作为链接目录。
接下来用everything寻找type_traits
定位到MSVC的include目录,我当前机子的目录是C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.28.29333\include
重新打开cmd使环境变量生效,然后执行nmake
会发现还是缺少某某头文件,还是按照上述的套路配置。
接下来会缺少“xxx.lib”
也是按照上述的套路配置,但是要加在用户变量的LIB目录下
如果提示缺少“rc.exe”,用everything找到它
加到Path目录下
可以看到已经成功生成了release版本的dll
要生成Debug版本的dll请使用该语句nmake -f Makefile.Debug
最后使用nmake install
可以看到nmake把生成的dll和lib拷贝到qt的bin和lib路径下了