拯救为知笔记

Posted on 2018-01-06 14:42:21

起因

本肥宅是一个懒人。
所以第一次安装为知笔记时,我选择了一个能够从apt安装的低版本而不是从源码编译。
所以为知笔记出现新同步方式时,我在iPhone上疯狂next。
于是我打开ubuntu时,神他么为知笔记登不上去了!!!!!!!!

经过


仔细一看,开启新同步方式后,旧版本
无法登录
无法登
无法

没关系,我撤销行了吧

你他瞄为什么不一次性说完呢!!!!

从源码编译

没关系,大不了从源码编译,反正Qt早就装好了。

根据简略的官方文档clone源码、编译、运行,如丝般顺滑。
好了这下终于可以用了吧

Naive!

输入法又崩了,在为知笔记窗口中根本调不出输入法。
面向谷歌解决问题
原来是fcitxqt5之间的动态库问题。(我之前都没发现QtCreator不能输入中文,捂脸)

sudo apt-get install fcitx-frontend-qt5
sudo apt-get install fcitx-libs-qt5

然后将/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/里的libfcitxplatforminputcontextplugin.so拷贝到 /QT安装目录/Tools/QtCreator/lib/Qt/plugins/platforminputcontexts以及/QT安装目录/版本号/gcc_64/plugins/platforminputcontexts/
注意权限和用户组也要随之改变。

版本问题

到这里,问题似乎都应该解决了,在为知笔记的搜索栏里随便一试,没问题,QtCreator也能输入中文了。

但是,当我试图写下笔记时,输入法又失灵了,虽然搜索框依然没有问题。

只能疯狂谷歌,在为知笔记吧的某个帖子的楼中楼里找到了问题的所在,这是一切都是因为Qt5.8的bug,解决办法嘛,等Qt5.9出来就行。

惊不惊喜,刺不刺激?

官方建议是卸了5.8回到5.7。
那么,再次clone源码、编译、运行,如丝般顺滑。
等等,怎么报错了?

大致是因为

undefined reference to symbol '_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc@@GLIBCXX_3.4.21
'

/usr/lib/x86_64-linux-gnu/libstdc++.so.6: error adding symbols: DSO missing from command line

两处错误导致链接失败。
在 Stack Overflow 看到一个类似问题,应该是编译器的锅。
查看QtCreator的项目构建,编译器果然是gcc,改为g++之后,一切解决。
进入编译产生的文件目录build-WizQTClient-Desktop_Qt_5_7_0_GCC_64bit-Minimum Size Release之类。
sudo make install将在/usr/local/bin出现编译好的WizNote。

结尾

不得不吐槽一下为知笔记,新功能是好的虽然这么一来所有平台都要更新,不能取消也无所谓,但是事情能不能一次说完?
linux端相较windos本来功能就少(当然,能有linux端就已经堪称良心,胜过其他什么什么笔记了),还非要从源码编译,而文档又形同虚设,像fcitx输入和Qt5.8bug这种事情要是能早作提醒也就不会花费我这么多时间了。


好消息,Qt5.9发布

等我有时间再说吧……
妈耶,网易云音乐出问题了

No appenders assotiated with category qt.network.ssl
[Warning] <> QSslSocket: cannot resolve SSLv2_server_method

查了一下是OpenSSL的锅,按照网上的陈年博客自己编译、改环境变量,并没有什么用,仔细想想是系统更新了一大堆包才这样的,而不是什么系统禁用ssl_2,目测是qt的锅,干脆换5.9顺便编译为知笔记吧。
安装之后,改掉LD_LIBRARY_PATH果然可以愉快的听歌了。
熟练地打开Qt Creator,建构……
喵喵喵,怎么失败了,用的路径还都是qt5.7?
贴吧里查到qt5.9应该用2.5.6分支,于是check out,正准备再次打开Qt Creator,妈耶,已经有写好的编译脚本了,而且还有年头了,官方文档是在吃屎嘛,一直不更新…..

等编译吧
什么,报错?!!!

-- Checking to see if CXX compiler accepts flag -fprofile-arcs -ftest-coverage - yes
CMake Warning at /usr/lib64/cmake/Qt5Core/Qt5CoreMacros.cmake:325 (find_package):
  Could not find a package configuration file provided by "Qt5WebEngine" with
  any of the following names:

    Qt5WebEngineConfig.cmake
    qt5webengine-config.cmake

  Add the installation prefix of "Qt5WebEngine" to CMAKE_PREFIX_PATH or set
  "Qt5WebEngine_DIR" to a directory containing one of the above files.  If
  "Qt5WebEngine" provides a separate development package or SDK, be sure it
  has been installed.
Call Stack (most recent call first):
  cmake/QtChooser.cmake:47 (qt5_use_modules)
  lib/quazip/CMakeLists.txt:8 (qt_use_modules)


CMake Error at /usr/lib64/cmake/Qt5Core/Qt5CoreMacros.cmake:327 (message):
  Can not use "WebEngine" module which has not yet been found.
Call Stack (most recent call first):
  cmake/QtChooser.cmake:47 (qt5_use_modules)
  lib/quazip/CMakeLists.txt:8 (qt_use_modules)


-- Configuring incomplete, errors occurred!

陈年博客又说,是环境变量的问题,那就无脑照着改,不行!
难道是我压根没装上WebEngine
还真是,无脑下一步是没有WebEngine的,需要自己勾选……
搞定。

彩蛋

鉴于为知笔记的方形图标太丑,和numix实在不搭,之后自己用gimp弄了一个圆的,丢进/usr/local/share/icons/hicolor/即可。

补一个参考链接