本篇文章记录了我配了一个晚上作业环境的经过……

起因

其实并没有什么起因,只是单纯的讲师布置了作业让我们完成,第一步便是配置环境而已。

事情回到上午,A1 released,下载,解压,code .打开扫一眼,发现就只有一个QT环境,那环境岂不是轻松拿捏。但事实是我错了,晚上吃完饭开始搞,一直搞到凌晨,才成功运行。本文章就来记录一下晚上配置环境的经过。

噩梦的开始

通过阅读readme.txt,说明了QT版本为5.13.0并给出了下载地址。一顿安装后,启动QT Creator!打开RaytraceRenderWindow.pro,运行!报错!

What?怎么报错了??仔细看看先……

hummmmmm,看上去像是clang不支持一个库,几经搜索得到了下面此噩耗。

当然,回复也给了解决方案:

啊哈,这不就安装一下完事儿了!

安装!链接!启动!报错!

What??怎么又报错了???再仔细看看先……

奥,原来是没有链接上(这个时候我就应该意识到不对劲),我再单独链接一下咯,此时.pro文件已经由

变为了

编译!运行!报错!

为什么还是报错???我再再再看一下……

亏贼!5.13.0版本居然只有编译到x86_64版本的!而brew安装的只有编译为arm64的,所以根本没办法用!但是在下还是想到了两个解决方案:

  • 将QT版本升级到有arm64
  • 自己编译一份libopm或者找找别人编译过的

有了大致方案,开干!

搞定!

PlanA

首先测试第一种方案,将QT版本升级到6以上,再进行编译链接。

编译!报错!

啊?又又又又报错了?定睛一看,阿西吧!怎么不支持OpenGL啊,只能寄希望于PlanB了。

PlanB

啊!PlanA寄了,只能网上去搜索,翻了一页又一页谷歌,终于,功夫不负有心人,有一位大佬编译好了一份,并且支持arm和x86双架构(链接在此)!

下载!链接!编译!运行!成功!

终于!

final
final

最后附上改完的.pro文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#adding openMP
unix:!macx {
QMAKE_CXXFLAGS+= -fopenmp -Wall
LIBS += -fopenmp
}

macx: {
QMAKE_CXXFLAGS += -Xpreprocessor -fopenmp -lomp -I../libs/libomp/include
QMAKE_LFLAGS += -lomp
LIBS += -L../libs/libomp/lib

# remove package time, accelerate the compile period
CONFIG -= app_bundle
}

总结

此事让我感觉到了MACOS真的是多么的难用(当然也有qmake这种老旧build system的原因),前年刚使用时觉得无比的好用,但是经历过这两年无数环境问题和配环境的痛苦,因为系统不开放而导致的很多妥协的方法,真的让我感觉到这个系统绝对是不适用于程序员的,让我怀念的反而是让我用了只有半年的Linux,随着Electron技术的发展,Linux系统的软件差距将会逐渐减少,终有一天,我还是会换回Linux