【问题标题】:CGAL Error: LNK1104: cannot open file CGAL-...4.11.libCGAL 错误:LNK1104:无法打开文件 CGAL-...4.11.lib
【发布时间】:2017-09-26 06:03:48
【问题描述】:

这一直是论坛上的常见问题,但我没有找到解决方案。 Windows 10 64 位、CGAL 4.11、Cmake 3.9.2、Boost 1.65.1、Qt5 for MSVS 2017、libQGLViewer 2.7.0、Visual Studio 2017、CGAL 构建为 Debug 和 Release,无数 C++ 包含路径和 Windows 用户路径变量已尝试.它无法打开,不一定找不到,主 CGAL 库文件。 .lib 文件当然存在。当我尝试运行一个简单的 CGAL 测试程序时,我无法克服这个错误。

https://imgur.com/gallery/heEDb

【问题讨论】:

  • 这里的潜在答案是,CGAL 是使用错误的链接器标志构建的,但是在配置任何指定 /MTd 的行之后,我在 CMake 中看不到,而我看到 /MD 和 /MDd 很多,所以这不是真正的问题。 stackoverflow.com/a/28044353/4806365
  • 将 /VERBOSE 添加到项目的链接器属性的附加条目中不会提供任何附加信息,它只是列出所有包含错误的内容。
  • 如果我不只是在右键单击属性中将库位置添加到 C++ 头文件中,而是将其添加到链接器的附加库目录中,它会编译(调试模式)并最终出现一个输出窗口,但随后获胜'没有运行,因为它说“CGAL-vc140-mt-dg-4.11.dll is missing”,它确实存在并且我的C++头条目确实指向它的目录。在此最终错误之前,我遇到了许多其他 PDB 文件错误,但在我打开工具>选项>调试>符号>Microsoft 符号服务器后它们就消失了。
  • 确实,CGAL 的非图形几何测试程序运行良好,从这里开始,现在我已将 .dll 添加到我的程序目录:doc.cgal.org/latest/Manual/tutorial_hello_world.html。我也可以使用 CMake,然后编译并运行已安装的 CGAL 示例,如果我将 .dll 复制到我构建它的根目录中,那么 CGAL 本身不会损坏。
  • 看看here,看看你是否错过了任何步骤。特别是环境变量的设置。

标签: windows-10 cgal


【解决方案1】:

确实,我必须通过两个易于使用 Google 的步骤激活 Windows 10 内置 Bash shell,然后只需将 cgal_create_CMakeLists 从 CGAL 脚本目录复制到我的 Visual Studio 项目目录并通过 Bash 进入 Windows 磁盘“ mnt”目录。当我刚刚输入“cgal_create_CMakeLists”时,它会吐出有关如何通过命令安装脚本的信息,然后,经过多次搅动,当我刚刚输入“cgal_create_CMakeLists”时,它添加了一个 CMakeLists 文件,我只需将 CMake-gui 指向未找到 Boost_DIR 安装目录,让 Configure 不列出红色错误。然后 Visual Studio 可以打开由 CMake-gui 创建的 .sln 文件,并对其进行编译。右键单击将解决方案资源管理器窗格中的程序列表分配给设置为启动项目让我点击绿色调试器箭头,在空白控制台窗口消失后,CGAL 编写了一个漂亮的 ASCII 四面体 out.Mesh 文件。最初,我使用的示例文件是从 CGEN 参考站点复制并粘贴到一个新的 Visual Studio Windows 控制台项目中,该项目具有球形边界四面体网格:

http://cgal-discuss.949826.n4.nabble.com/CGAL-demos-on-Windows-won-t-configure-td4656618.html

我不确定现在有什么软件可以可视化简单格式化的 .Mesh 文件,因为 MeshLab 不会。

如果您有 QT5 和 libQGLViewer,据说三个 Demo 包可以创建自己的图形:Polygon、Polyhedron 和 AABB_tree。我至少可以有一些机会使用 Visual Studio 构建它们,现在 CMake 与 CGEN 的小 shell 脚本合作,Windows 10 很高兴运行。

CGAL 使用起来非常复杂,直到您阅读了关于它从根本上依赖于 CMake 准备脚本来编译甚至最简单的示例的细则。

【讨论】:

  • 事后看来,我不认为 Qt5 和 libQGLViewer 值得麻烦,因为它们只是少数演示的图形窗口输出附件。那里有很多独立的查看软件。绝大多数演示和所有示例甚至都不使用它们。特别是 Qt5 在构建 CGAL 时引起了数小时的头痛,因为 CMake 必须手动将 Qt5_DIR 设置为晦涩的深层目录 C:\Qt\5.9.1\msvc2017_64\lib\cmake\Qt5 以阻止 QMa​​ke 在您尝试时再次清除 Qt5_DIR重新配置。它还需要将 Qt5 菜单插件安装到 Visual Studio 2017 中。
  • CGAL 四面体网格采用模糊的 MEDIT 查看器格式 (ljll.math.upmc.fr/frey/software.html)。该页面有一个二进制文件,并且还分别具有所需的 DLL 文件。你命令行从它的控制台打开你的文件,然后有一个用于交互式剪辑的右键菜单。结果:imgur.com/gallery/THvGy
猜你喜欢
  • 2015-03-02
  • 1970-01-01
  • 2020-09-04
  • 1970-01-01
  • 2016-02-09
  • 1970-01-01
  • 2012-11-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多