d:\software\bentley\microstationce\include\mstn\mdlapi\mscurrtr.fdf(150): error C2872: “Transform”: 不明确的符号 (编译源文件 G:\Microstation\MSCE-coding\Mstn-ceri-practice\ceri\ceri.cpp)d:\vs2017lib\include\eigen\src/Geometry/Transform.h(202): note: 可能是“Eigen::Transform” (编译源文件 G:\Microstation\MSCE-coding\Mstn-ceri-practice\ceri\ceri.cpp)d:\software\bentley\microstationce\include\geom\transform.h(22): note: 或 “Bentley::Transform” (编译源文件 G:\Microstation\MSCE-coding\Mstn-ceri-practice\ceri\ceri.cpp)d:\software\bentley\microstationce\include\mstn\mdlapi\mscurrtr.fdf(157): error C2872: “Transform”: 不明确的符号 (编译源文件 G:\Microstation\MSCE-coding\Mstn-ceri-practice\ceri\ceri.cpp)d:\vs2017lib\include\eigen\src/Geometry/Transform.h(202): note: 可能是“Eigen::Transform” (编译源文件 G:\Microstation\MSCE-coding\Mstn-ceri-practice\ceri\ceri.cpp)d:\software\bentley\microstationce\include\geom\transform.h(22): note: 或 “Bentley::Transform”
额外引用了Eigen库,当前开发环境为vs2017&MSCE
有人遇到相同的问题了嘛?有什么解决方案?
比如说Transform,在Bentley这个命名空间存在,在Eigen这个命名空间也存在,那么在引入lib文件和头文件的前提下,如果您想调用Eigen这个命名空间中的Transform,那么在调用的时候这样写:Eigen::Transform就行了。
这些可都是编程语言的最基本概念啊。命名空间就是用来区分不同公司的不同库中的相同函数名的。一般来说,你用最完整的命名空间名就能避免这种冲突出现。
比如,你都写成Bentley::Transform::XXX 或Eigen::Transform::XXX即可。
liu li said:mscurrtr.fdf(150):
报错的地方在于ms的include文件中,这个我也可以改吗?改了之后ms还能用?
并不是我进行二次开发时的文件中出现的问题