经过一番努力,我能够在Windows上编译CGAL环境。 为此,我遵循description provided by CGAL,因此所有库和包含文件都位于c:\ dev \ CGAL-4.10.1
现在是时候将CGAL与QT5 Creator结合使用了。 对于第一个测试,我只想设置一个基本项目,它只能用一个CGAL include语句编译空白代码。
所以,我在Qt5 Creator中创建了一个新项目。 mainwindows.cpp有一个CGAL include语句(AABB_face_graph_triangle_primitive.h):
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <CGAL/AABB_face_graph_triangle_primitive.h>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
我选择AABB_face_graph_triangle_primitive.h作为例子。
项目文件(.pro)必须包含所有引用才能找到.h文件(可能还有.lib文件?)。所以我添加了一行:
INCLUDEPATH += C:\dev\CGAL-4.10.1\include
编译此项目会出现以下错误:
fatal error C1083: Cannot open include file: 'CGAL/AABB_face_graph_triangle_primitive.h': No such file or directory
由于文件确实存在,因此问题的根源在于未能包含正确的包含路径。 应该添加到项目文件中以编译这个基本的空白程序?
我注意到,当右键单击项目名称时,我可以选择“添加库”来自动生成.pro文件中的语句。在这里,我选择了“外部库”。 对于'库文件',我浏览了'C:\ dev \ CGAL-4.10.1 \ build \ lib \ Release \ CGAL_Qt5-vc140-mt-4.10.1.lib'(不确定如果这是正确的??但它是Qt5在其名称中的发布文件夹?)。 对于'Include Path',我浏览了'C:\ dev \ CGAL-4.10.1 \ build \ include'(也不确定?)。我取消选择'linux'和'Mac',所以只选择'Windows'。
这会生成以下自动添加到.pro文件的文本:
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../../dev/CGAL-
4.10.1/build/lib/release/ -lCGAL_Qt5-vc140-mt-4.10.1
else:win32:CONFIG(debug, debug|release): LIBS += -
L$$PWD/../../../../dev/CGAL-4.10.1/build/lib/debug/ -lCGAL_Qt5-vc140-mt-
4.10.1
else:unix: LIBS += -L$$PWD/../../../../dev/CGAL-4.10.1/build/lib/ -lCGAL_Qt5-
vc140-mt-4.10.1
INCLUDEPATH += $$PWD/../../../../dev/CGAL-4.10.1/build/include
DEPENDPATH += $$PWD/../../../../dev/CGAL-4.10.1/build/include
不幸的是,即使使用这个“更高级”的自动生成的.pro,编译仍然会在找不到.h文件时出错......
主要问题: 应该在.pro文件中提供什么,以便在Windows下使用简单的.h CGAL include语句成功编译空白Qt5 Creator项目。 除了添加'INCLUDEPATH'语句之外,还应该引用CGAL库(.lib)。如果是,应该如何形成声明以及应该添加哪个库(CGAL_Qt5-vc140-mt-4.10.1.lib || CGAL_Qt5-vc140-mt-gd-4.10.1.lib)。
(我注意到这个问题已经被要求用于Linux环境)
答案 0 :(得分:0)
这有点令人尴尬......
解决方案是右键单击项目名称并运行qmake命令。
要完成,这是我的.pro文件
INCLUDEPATH += \
C:\dev\CGAL-4.10.1\include \
C:\dev\boost_1_65_1 \
C:\dev\CGAL-4.10.1\build\include\
win32: LIBS += -L$$PWD/../../../../dev/CGAL-4.10.1/build/lib/ -lCGAL_Qt5-vc140-mt-4.10.1
INCLUDEPATH += $$PWD/../../../../dev/CGAL-4.10.1/include
DEPENDPATH += $$PWD/../../../../dev/CGAL-4.10.1/include