Window7下安装CGAL(VS2013)

本文详细介绍了在Windows 7环境下,如何使用Visual Studio 2013安装和配置CGAL库,包括下载Boost预编译二进制文件,安装CGAL,使用CMake配置编译,以及在VS项目中设置CGAL路径的步骤,旨在简化CGAL的安装过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从事graphics的研究,难免要经常安装CGAL。CGAL十分强大,但是安装起来相对比较麻烦(对boost等库的依赖)。

不过我今天想说的是,其实如果按照如下所述流程,安装CGAL其实也挺简单。

首先说下安装环境:Win7+VS2013 安装Boost1.5.5+CGAL4.4


1. 由于CGAL对boost有依赖,首先需要按照boost。

方便起见直接下载boost binary安装:

http://sourceforge.net/projects/boost/files/boost-binaries/

选择boost_1_55_0-msvc-12.0-32.exe下载安装,用binary方便省事。下完之后,直接按流程点击即可,完全无脑操作。


2. 安装CGAL4.4

https://www.cgal.org/download.html

### 在 Visual Studio 2022 中集成 Qt 和 CGAL 库的方法 #### 工具准备 在开始配置前,需确保已安装以下工具和库: - **Visual Studio 2022**:建议启用 C++ 开发工作负载。 - **vcpkg** 或其他包管理器用于简化依赖项管理[^3]。 - **Qt 安装程序**:可以从官方站点下载适合 Windows 平台的版本。 - **CGAL 源码**:可从其官方网站获取最新稳定版本[^4]。 --- #### 使用 vcpkg 集成 Qt 和 CGAL 通过 `vcpkg` 可以显著减少手动配置的工作量。以下是基于 `vcpkg` 的解决方案: 1. **安装 vcpkg** 下载并初始化 `vcpkg`: ```bash git clone https://github.com/microsoft/vcpkg.git cd vcpkg .\bootstrap-vcpkg.bat ``` 2. **安装所需库** 使用以下命令安装 Qt 和 CGAL 及其依赖项: ```bash .\vcpkg install qt5-base:x64-windows cgal:x64-windows boost eigen gmp mpfr tbb:x64-windows ``` 上述命令会自动拉取所需的第三方库(Boost、Eigen、GMP、MPFR 等),并将它们链接至目标架构。 3. **集成 vcpkg 到 Visual Studio** 修改项目的 CMakeLists.txt 文件,添加如下内容以支持 vcpkg: ```cmake set(CMAKE_TOOLCHAIN_FILE "路径/to/vcpkg/scripts/buildsystems/vcpkg.cmake") ``` 4. **创建项目并测试** 创建一个新的 C++ 控制台或 GUI 项目,并编写简单的代码验证功能。例如,加载一个窗口并与 CGAL 数据结构交互。 --- #### 手动配置 Qt 和 CGAL 如果不希望使用 `vcpkg`,也可以手动完成配置过程: 1. **安装 Qt** - 下载适用于 Windows 的 Qt 安装程序。 - 启动安装向导,选择合适的组件(如 Qt Widgets)。 - 记录安装路径以便后续引用。 2. **配置 Qt 支持** 编辑项目的 CMakeLists.txt 文件,指定 Qt 路径: ```cmake cmake_minimum_required(VERSION 3.17) project(MyProject LANGUAGES CXX) # 设置 Qt 路径 set(Qt5_DIR "C:/Qt/5.15.2/msvc2019_64/lib/cmake/Qt5") find_package(Qt5 COMPONENTS Core Gui Widgets REQUIRED) include(${Qt5_USE_FILE}) add_executable(MyApp main.cpp widget.cpp) target_link_libraries(MyApp PRIVATE Qt5::Core Qt5::Gui Qt5::Widgets) ``` 3. **编译 CGAL** - 解压 CGAL 源码到本地目录[^4]。 - 替换 GMP 和 MPFR 库文件到辅助目录中。 ```plaintext 将解压后的 gmp 文件夹复制到 D:\exe\VCMinGW\CGAL5.6\auxiliary\ ``` - 使用 CMake-GUI 配置构建选项: - Source Code Directory: `<CGAL_ROOT>` - Build Directory: 自定义输出路径。 - 配置完成后生成对应的 Visual Studio 解决方案。 4. **链接 CGAL 至项目** 在 CMakeLists.txt 中加入 CGAL 的头文件和库路径: ```cmake find_package(CGAL REQUIRED) include(${CGAL_USE_FILE}) add_executable(MyApp main.cpp) target_include_directories(MyApp PUBLIC ${CGAL_INCLUDE_DIRS}) target_link_libraries(MyApp PRIVATE ${CGAL_LIBRARIES} ${BOOST_LIBRARIES}) ``` --- #### 注意事项 - **调试与发布模式差异**:由于 CGAL 内部大量使用断言机制,在 Debug 模式下的运行速度可能会远低于 Release 模式[^2]。 - **渲染问题**:某些情况下,Qt 绘图功能可能仅能在 Debug 模式下正常运作。这通常涉及特定版本间的兼容性问题[^2]。 - **性能优化**:对于大规模计算任务,推荐利用 CGAL 提供的并行算法实现加速效果[^2]。 --- ```cpp // 示例代码片段展示如何结合 Qt 和 CGAL 功能 #include <QApplication> #include <QWidget> #include <CGAL/Simple_cartesian.h> typedef CGAL::Simple_cartesian<double> Kernel; typedef Kernel::Point_2 Point; int main(int argc, char *argv[]) { QApplication app(argc, argv); QWidget window; window.resize(800, 600); window.setWindowTitle("Qt with CGAL"); // 测试 CGAL 几何运算 Point p(0, 0), q(1, 1); double distance = CGAL::squared_distance(p, q); qDebug() << "Distance:" << std::sqrt(distance); window.show(); return app.exec(); } ```
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值