Meshlab2021.07源码编译 vs2017 + QT5.12.11

四处搜索确定了大致编译过程,在此记录一下遇到的一些问题

导入pro文件后生成的sln文件版本问题

可能由于电脑上安装过早些版本的visual studio,生成的sln文件版本较早,会提示“Solution file xxx is from a previous version of this application and must be migrated”,搜索后发现部分解决方法为更改QMAKESPEC为win32-msvc201x,不过在5.12版本的QT路径\QT\5.12.11\msvc2017_64\mkspecs下并无此文件夹
解决方法:

打开\QT\5.12.11\msvc2017_64\mkspecs\common\msvc-version.conf文件,在最前端添加 QMAKE_MSC_VER = xxxx, 其中xxxx是对应vs版本的MSC_VER,搜索一下很容易获得,比如我这里是QMAKE_MSC_VER = 1916

编译meshlab-common时GLLogStream.h报错definition of dllimport static data member not allowed

搜索后发现应该和这个例子比较符合,但看完还是不知道问题在哪,于是简单粗暴的删掉了宏ML_DLL_EXPORT…即

class ML_DLL_EXPORT
		GLLogStream : public QObject
{
	Q_OBJECT
public:
...

改为

class /*ML_DLL_EXPORT*/
		GLLogStream : public QObject
{
	Q_OBJECT
public:
...

编译通过,如果有人告知更明确的错误原因感激不尽~

编译meshlab时出现newline in constant

推测与

showHiddenFramePushButton->setText("▲");

中的三角形符号有关,改成

showHiddenFramePushButton->setText("up");

后编译通过,类似的还有倒三角,不知道有没有什么其他的解决办法

编译meshlab时出现LNK2001: unresolved external symbol _mainCRTStartup

十分迷惑,最终参考了这里的第一个回答,clean后第一次build报错,再次build通过

可以在distrib中打开meshlab.exe了!

关闭之后还提示了一个debug error。。。不知道会不会影响使用。。。

Qt5Cored.dll
Module: 5.12.11
File: qgl.cpp
Line: 1734
ASSERT: “group -> context() == q_ptr” in file qgl.cpp, line 1734

以上,前前后后搞了一星期累死我了,其他值得注意的是版本等对应问题(比如这里我用的都是2017),vcglib 下载 devel branch等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值