在挣扎之后,我能够在Windows上编译CGAL环境。为此,我遵循了CGAL提供的描述,因此所有库和包含文件都位于C: dev cgal-4.10.1
中现在是时候将CGAL与QT5创建者结合使用了。对于第一个测试,我想设置一个基本项目,该项目只能使用一个CGAL来编译空白代码。
。所以,我在QT5创建者中创建了一个新项目。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_primistion.h作为示例。
- 迭代1:
项目文件(.pro)必须包含所有参考,才能找到.h文件(可能是.lib文件?)。所以我添加了行:
INCLUDEPATH += C:devCGAL-4.10.1include
编译此项目给出以下错误:
fatal error C1083: Cannot open include file: 'CGAL/AABB_face_graph_triangle_primitive.h': No such file or directory
由于文件确实存在,因此此问题的根源在于未包括正确的路径。应该在项目文件中添加什么以编译此基本空白程序?
- 迭代2:
我注意到,当右键单击项目名称时,我可以在.pro文件中选择"添加库"为自动生成语句。在这里,我选择了"外部库"。对于"库文件",我浏览到'c: dev cgal-4.10.1 build lib lib libe cgal_qt5-vc140-mt-4.10.1.lib'(不确定这是正确的吗?但这是QT5的释放文件夹,其名称?)。对于" include路径",我浏览了" c: dev cgal-4.10.1 build include'(也不确定?)。我取消了" Linux"one_answers" 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。
主要问题:.pro文件中应提供的内容,以成功地编译了一个简单的.h CGAL在Windows下的语句。除了添加" includepath"语句之外,如果也有参考CGAL库(.lib)。如果是的,则应如何形成语句以及应添加哪个库(CGAL_QT5-VC140-MT-4.10.1.1.lib || CGAL_QT5-VC140-MT-GD-GD-4.10.1.1.lib)。
(我注意到这个问题已经被要求进行Linux环境)
好吧,这有点令人尴尬...
解决方案是右键单击项目名称并运行qmake命令。
要完成,这是我的.pro文件
INCLUDEPATH +=
C:devCGAL-4.10.1include
C:devboost_1_65_1
C:devCGAL-4.10.1buildinclude
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