1. 前述
- 使用 Cmake 编译一个项目,之前一直使用的是 MinGW 编译器,因为其它需要要求使用 MSVC 编译,但出现如下报错内容:
...
error C2065: “mTime”: 未声明的标识符
error C3536: “tp”: 初始化之前无法使用
error C2664: note: 原因如下: 无法从“int”转换为
error C2059: 语法错误:“)”
error C2062: 意外的类型“float”
error C2065: “cameraMatrixPtr”: 未声明的标识符
error C2317: 在行“242”上开始的“try”块没有 catch 处理程序
error C2065: “js_”: 未声明的标识符
error C2181: 没有匹配 if 的非法 else
error C2065: “ret”: 未声明的标识符
error C2065: “ret”: 未声明的标识符
...
2. 解决
- 使用的是VScode,可以看到同一工程里面不同文件的行尾序列(LF/CRLF:换行/回车换行)、文件编码均不一样。
-
如图所示,更改所有文件行尾序列为 CRLF,注意保存文件。
-
重新编译成功,生成 dll 和 lib,正常使用。
3. 其它(可选)
- 修改所有文件编码为 UTF-8。