文章目录CGAL Demo的编译过程记录
- 一.先决条件
- 二.LibQGLViewer编译
- 1.生成动态库
- 2.尝试编译示例教程 sinpleViewer
- 3.编译qglviewerplugin
- 4.放置.dll文件至指定位置。
三、CGAL Demo的编译
- 总结
一.先决条件
- vcpkg安装CGAL
- LibQGLViewer
- 下载CGAL的实例程序,我已下载CGAL5.3
提示:以下是本篇文章正文内容,下面案例可供参考
下载LibQGLViewer2.6.3.
-
使用VS打开.Pro文件
-
添加OpenGL32.lib,glu32.lib到QGLViewer链接器中。
-
右键QGLViewer,仅用于项目,仅生成QGLViewer
-
在Debug模式下,在文件目录QGLViewer中生成前缀为QGLVIewerd2.XXX的如下几个文件
-
在Release模式下,在文件目录录QGLViewer中生成前缀为QGLVIewerd.XXX的如下几个文件
-
同样 仅用于生成 仅生成项目sinpleViewer,直接生成时出错,提示如下错误。
error LNK2019: 无法解析的外部符号 __imp_glBegin,函数 “protected: virtual void __cdecl Viewer::draw(void)” (?draw@Viewer@@MEAAXXZ) 中引用了该符号
原因是没有添加glu32.lib,opengl32.lib到附加连接器中,添加即可。
-
同样,如果在第一节中编译QGLViewer时并没有同时编译Debug模式和Release模式,再次编译时出错,提示找不到QGLViewer2.lib,这是因为在附加链接器中,默认存在QGLVeiwer2.lib,而仅仅在Debug模式下编译是获得的是QGLViewerd2.lib等。
因此,两种方法:
-
先完成QGLViewer的编译,包括Debug模式和Release模式。
-
在Debug模式编译时将附加连接器中QGLViewer2.lib改为QGLViewerd2.lib。
-
有了 sinpleViewer 的经验后,编译qglviewerplugin本因就轻松多了,但是还是出现了一些问题。
- 同样,添加OpenGL32.lib,glu32.lib到附加连接器中,有必要时修改QGLViewer2.lib为QGLViewerd2.lib.
- 再次生成出错。
提示如下
*error LNK2019: 无法解析的外部符号 “__declspec(dllimport) public: __cdecl Viewer::Viewer(class QWidget *)” (_imp??0Viewer@@QEAA@PEAVQWidget@@@Z),函数 "public: virtual class QWidget * __cdecl QGLViewerPlugin::createWidget(class QWidget )" (?createWidget@QGLViewerPlugin@@UEAAPEAVQWidget@@PEAV2@@Z) 中引用了该符号
- 在qglviewerPlugin.cpp中,找到如下代码块,将QDESIGNER_WIDGET_EXPORT 进行删除。
重新编译即可。
- 在 Release 模式下,生成如下动态库和静态库文件。
- 搞定一半,为方便后续使用,将生成的.dll文件和.lib文件新建一个文件夹,我放在E:\Env\libQGLViewer\lib文件夹下。
分别为Debug模式下和Release模式下,当然不区分也可以的。
- 将qglviewerplugin.dll放置到QT的plugins/designer目录,具体为:E:\Program\ProgramForStudy\Engineering\Qt\5.14.2\msvc2017_64\plugins\designer。
- 将QGLViewer2.dll放置在bin目录,具体为:E:\Program\ProgramForStudy\Engineering\Qt\5.14.2\msvc2017_64\bin。
- 测试,打开designer.exe,则可以看到出现QGLViewer。
- 根据网上其他教程,可以将存放有QGLViewer2.dll的文件夹添加到系统环境变量中,但我并没有这样做。
而是直接将其放在C:\Windows\SysWOW64文件夹内。
三、CGAL Demo的编译
参考博客CGAL DEMO 演示
- 首先更新Qt Script。
- 使用CMake编译Polyhedron,选择vcpkg,并没有出现如上述博客的一些困难,诸如选择LibQGLViewer目录什么的,我也搞不清楚为什么。
但是在编译LibQGLViewer之前CMake时会提示很多错误,即便生成sln文件也缺失很多内容,无法运行。
这次直接就生成sln文件,且能够运行。
可能这次实在时太凑巧了。
后面有问题我还要回来的。
存在的问题:
- 生成的exe文件支持什么文件格式呢?我看源demo文件中提供OFF格式的文件,但是为什么打不开,出现如下错误。
enable scripts
可是明明在CMake的时候能够找到QT script的目录啊
原因:我居然没有ALL_BUILD,重新生成后将Polyhedron_3设为启动项目,可以成功打开OFF文件了。
再试试其他文件类型STL,成功
后面再看看有什么BUG
总结第一次写CSDN博客,还不是很熟悉。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)