使用vs2013、CodeBlocks分别编译cgal

来源:互联网 发布:手机怎么申请淘宝账号 编辑:程序博客网 时间:2024/04/30 04:52
vs2013编译cgal
1.安装boost1.5.4;安装cgal4.4;安装cmake2.8.8。
2.编译boost:
2.1执行bootstrap.bat,准备。
2.2执行b2编译。
3.编译cgal:
3.1用cmake准备vs2013的工程文件,参看网上资料,配置了boost_include_dir和boost_library_dir。
3.2用vs2013打开工程文件编译。
4.测试编译的cgal:
4.1用vs2013创建vc console程序,使用cgal手册的第一个例子代码;
4.2需要配置cgal的include和lib目录,配置boost的include和lib目录,配置cgal中的gmp的include和lib目录;
4.3提示缺少的compiler_config.h文件,从build的include复制到cgal的include目录;
4.4link需要的cgal和boost的lib只需要指定路径就可以了,而gmp的需要指定lib的名字作为输入,否则会提示gmp链接错误。
--基本上就是这些,更详细的过程参照网上资料。


CodeBlocks编译cgal
1.安装boost1.5.4;安装cgal4.4;安装cmake2.8.8;安装codeblocks13,带mingw4.8.
2.编译boost:
2.1执行bootstrap.bat gcc  
2.2执行b2 --toolset=gcc --prefix=c:\apps\boost_gcc install
3.编译cgal:
3.1用cmake准备codeblocks的makefile,配置了boost_include_dir和boost_library_dir。

3.2用codeblocks打开工程文件编译。 


*4.codeblocks测试编译的cgal:
4.1创建console程序,使用cgal手册的第一个例子代码;
4.2需要配置cgal的include和lib目录,配置boost的include和lib目录,配置cgal中的gmp的include和lib目录;
-include配置在:project build option=search directories=compiler
-lib配置在:project build option=search directories=link
-作为输入的xlib文件名指定位置在:project build option=linker settings,用add命令增加

4.3执行时候需要cgal和gmp的dll。


5.用qt creator=mingw进行cgal测试:
5.1创建UI程序,调用cgal代码如下:
#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <iostream>
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/convex_hull_2.h>
typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
typedef K::Point_2 Point_2;

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_released()
{
    Point_2 points[5] = { Point_2(0,0), Point_2(10,0), Point_2(10,10),
    Point_2(6,5), Point_2(4,1) };
    Point_2 result[5];
    Point_2  *ptr = CGAL::convex_hull_2( points, points+5, result );
    //std::cout << ptr - result << " points on the convex hull" <<std::endl;
    QString str;
    char szVal[10]={0};
    itoa(ptr-result,szVal,10);
    str=szVal;
    ui->lineEdit->setText(str+" points on the convex hull");
}

5.2修改pro文件,配置include和lib,代码如下:
#-------------------------------------------------
#
# Project created by QtCreator 2014-04-30T22:33:42
#
#-------------------------------------------------
QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = cgal3_qt
TEMPLATE = app

SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui

INCLUDEPATH += C:\apps\CGAL-4.4\include \
  C:\apps\CGAL-4.4\auxiliary\gmp\include \
  C:\apps\boost_gcc\include\boost-1_54 \

LIBS += C:\apps\CGAL-4.4\build_gcc\lib\libCGAL.dll.a \
  C:\apps\CGAL-4.4\build_gcc\lib\libCGAL_Core.dll.a  \
  C:\apps\CGAL-4.4\build_gcc\lib\libCGAL_ImageIO.dll.a \
  C:\apps\CGAL-4.4\auxiliary\gmp\lib\libgmp-10.lib \
  C:\apps\CGAL-4.4\auxiliary\gmp\lib\libmpfr-4.lib \

5.3执行的时候需要cgal和gmp的dll。
0 0
原创粉丝点击