一直想学习开源CAD 的代码,因此特意下载了开源CAD LibreCAD代码进行编译,在这个过程中遇到了一些问题,写下这篇文章标记一下
在GitHub上下载LibreCAD的源码,下载Boost源码,编译好,我这使用的Boost版本是Boost1.63.0,因之前已经编译好所以这次不需要编译Boost了。使用的Qt版本是Qt 5.9.6
源码使用Qt Creator打开,先编译librecad 生成文件夹generated 拷贝到文件夹目录中,
修改boost.pri将Boost库的目录改成绝对路径,以便能直接查询到
直接运行会出错误;按下面这种方式修改即可
no matching function for call to 'mu:parser::SetExpr(std::string)
宽字符问题:进行更改为p.DefineConst(_T("pi"),M_PI)形式;
p.SetExpr(expr.toStdString());改为p.SetExpr(expr.toStdWString());
std::cout << e.GetMsg() << std::endl;
改为
QString s;
s.fromStdWString(e.GetMsg());
std::cout << s.toStdString() << std::endl;
修改之后就能运行成功了
参考 这位博客大神的 http://www.gkbc8.com/thread-11684-1-1.html
如图