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
这些可都是编程语言的最基本概念啊。命名空间就是用来区分不同公司的不同库中的相同函数名的。一般来说,你用最完整的命名空间名就能避免这种冲突出现。
比如,你都写成Bentley::Transform::XXX 或Eigen::Transform::XXX即可。
并不是我进行二次开发时的文件中出现的问题
如果还是无法搞定,请提供一个最简单的测试样例,附上你的Eigen库。
嗯,如果能修改,就修改编译后,链接新的lib,替换您工程的头文件,再编译您的项目,应该没问题了。
感谢符工,我再研究研究
好的,感谢张工
如果该问题已解决,请遵循发帖指南进行结贴,谢谢!
Answer Verified By: liu li