前提条件,本人的vs和qt没问题。关于qt和vs的配置参考我另一篇博客。
警告:一定要先看完本帖再根据本帖进行配置,因为有些采坑过程我也记载下来了。
下载boost,我下载的是1.7版本:https://www.boost.org/users/download/
然后放在D盘解压,解压完以后是这样的:
然后打开vs2015开发人员命令提示,到本目录下:
然后打开cmd,进入到当前目录下:
感到害怕,这个32bit,x86会不会影响后续的问题,我的项目都是64bit,x64环境下配置的啊。。。。但是这个sys32不都是存放的64位的文件吗。为什么在该cmd窗口下运行会默认是32bit和x86环境?难道是boost版本是针对32bit的?
所以,要加参数啊!!!!
我也不知道我下载的是不是64bit的,所以我就换下载路径了:https://dl.bintray.com/boostorg/release/1.70.0/binaries/
针对vs2015 64bit的版本,这个清楚,舒服。
bjam stage --toolset=msvc-14.0 architecture=x86 address-model=64 --without-graph --without-graph_parallel --stagedir="D:\local\boost_1_70_0\bin\vc14-x64" link=static runtime-link=shared runtime-link=static threading=multi debug release
过程就变成了这样:
慢慢等待······抠脚,喝水,吃东西·····站着,坐着,躺着 ······刷刷微博,看看知乎,逛逛b站·····还没好······估计要凌晨了······
运行到这里就不动了,这尼玛是好还是没好?好了总得给个complete提示吧阿西吧!!!!睡了一晚上回来看,还是这个界面。。。先不管了,试试看能不能用。
搭配环境变量:
在vs下新建空项目,对项目进行配置:
尝试代码:
#include
#include
#include
using namespace std;
void mythread()
{
cout << "hello,thread!" << endl;
}
int main()
{
boost::function f(mythread);
boost::thread t(f);
t.join();
cout << "thread is over!" << endl;
system("pause");
return 0;
}
运行结果如下:
啊,竟然没问题。但是依然忧心忡忡啊。毕竟编译的时候突然就卡顿了,也不提示是否已经完成。。。。或许没装完呢。。。。
但是先不管了。来试试看编译vs2017版本的文件,看看它最后是不是也和vs2015一样,卡在那里。。。。。:
啊咧????为什么这个就可以啊!!!!看来我的vs2015版本果然有问题。我需要重新编译一遍。。。。
但是有一点很奇怪的是,没有对应的生成lib64-msvc-14.1,没有dll文件。。。。:
又用vs2015的重新整了一遍,这次可以了:
然后是进行CGAL安装,我在github上下载的:https://github.com/CGAL/cgal/releases
也不是是不是64bit的???令人蛋疼。。。。。但是不要着急,在安装的时候可以选择:
修改环境变量:
用cmake进行编译,好害怕,这里最容易出错了,闭上眼睛捂住耳朵就不会有悲伤。。。。:
第一次:
然后这里我的qt路径不知道为什么,竟然显示的Anaconda的,我觉得不对劲,应该显示我安装的qt啊,所以我把它改了,真是奇了怪了。Anaconda怎么啥都集成了。。。。。感到头秃。。。。:
改成了:
好奇的对比了一下Anaconda下的qt和我在官网下载的qt,内容都是一样的。。。。。
神一般的anaconda3,感觉自己的电脑上装了太多重复的东西。。。真怕哪一天不知道踩了哪个地雷就崩了。。。
好了,继续config一下。看起来似乎是我没有eigen还有openmesh,这都是图形学比较常见的库,当然它也没找到opencv。。
那就去下载一下eigen和openmesh,还有这个opencv_dir到底该填哪个路径啊?头秃的是,好多博客都没有讲到这个哇。。。。这可如何是好。。。之所以需要eigen和openmesh和opencv第三方库,我觉得是因为demo和example里面需要这些第三方库。所以我把demo和example都去掉了重新Configure,结果正常了,但是这样的话,我就看不了CGAL的案例了(而且很可能以后的编程,也需要eigen3和openmesh,当然也需要opencv,所以最好还是捯饬一下),这里由于时间关系,就先跳过了。后面再写博客捯饬这些东西:
好了,下面来到CGAL文件夹下,和当时装opencv3.4.1套路是一样的,用vs2015打开sln进行编译。Release和Debug下面都试一试:
这里有一点很奇怪就是我cmake的时候没有boost的东西,我觉得这是个大隐患。。。。难道是我cmake版本太低了?还是说它其实已经找到了,不需要我手动添加路径:
狠显然,里面没有boost的lib文件,就是简单的文件,很简单很简单的文件,我甚至都怀疑能不能搞事情,下面写个简单的代码测试一下:
环境变量再改一下:
这特么是什么鬼???哦,因为我项目属性里没有加这个文件的路径。加完以后,ok
重启 - -
然后再次运行我的程序:
程序是这样写的:
#include
#include
#include
#include
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//CAGLTest w;
QGraphicsScene scene;
scene.setSceneRect(0, 0, 100, 100);
scene.addRect(QRectF(0, 0, 100, 100), QPen(QColor(255,0,0)));
scene.addLine(QLineF(0,0,100,100));
scene.addLine(QLineF(0, 100, 100, 0));
QGraphicsView* view = new QGraphicsView(&scene);
CGAL::Qt::GraphicsViewNavigation navigation;
view->installEventFilter(&navigation);
view->viewport()->installEventFilter(&navigation);
view->setRenderHint(QPainter::Antialiasing);
view->show();
//w.show();
return a.exec();
}
我觉得这个程序代表性很差。。。。。。后续如果还有什么问题的话,我会更新的。CGAL的帖子实在是太少了。。。各种版本又看的人头疼。。。。
参考博客:https://www.cnblogs.com/findumars/p/9362189.html