vs2015+qt5.9+CGAL4.14配置心得

前提条件,本人的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的?

还有这个,感觉是系统自动选择了vs2017的编译器 - -

所以,要加参数啊!!!!

我也不知道我下载的是不是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 <iostream>
#include <string>

#include <boost/thread.hpp>

using namespace std;


void mythread()
{
	cout << "hello,thread!" << endl;
}

int main()
{
	boost::function<void()> 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 <QtWidgets/QApplication>
#include <QGraphicsScene>
#include <QGraphicsView>
#include <boost/format.hpp>
#include <CGAL/Qt/GraphicsViewNavigation.h>



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

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

keneyr

老爷~给小的赏点盘缠吧555~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值