四处搜索确定了大致编译过程,在此记录一下遇到的一些问题
导入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
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等。
|