経緯
ubuntuで使用できるEvernoteクライアントのNixNote2というソフトを使用していた.しかし文字化が酷いので,他のソフトとしてHippo Notesを選んだ.
下準備はここを参考にした.
環境
- ubuntu 16.04 lts
- Qt5.5.1(インストール済み)
問題
公式通りにビルドを進めていき,$ make
コマンドを実行すると以下のエラーがでた.
pdfcache.h:10:25: fatal error: poppler-qt4.h: そのようなファイルやディレクトリはありません
compilation terminated.
Makefile:894: ターゲット 'tmp/main.o' のレシピで失敗しました
make: *** [tmp/main.o] エラー 1
解決
どうやらQtのバージョン4に関するエラーらしい.Qt5をインストールしてあるのに何故・・・?
エラーが出たファイルpdfdcache.hを見てみる.
if QT_VERSION >= 0x050000
include <poppler-qt5.h>
else
include <poppler-qt4.h>
endif
インストールしてあるのQtのバージョンでそれぞれのファイルを指定しているみたい.何故かQt5ではなくQt4として認識されている模様.
現在のQtのバージョンを確認する.
$ qmake -query QT_VERSION
$ 4.8.7
Qt4がデフォルトでインストールされていることが判明した.
こいつをQt5に変えてやる.
/usr/lib/x86_64-linux-gnu/qtchooser/default.conf
か
/usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf
でQtのバージョンを選択してやる.自分は後者で選択をした.
/usr/lib/x86_64-linux-gnu/qt4/bin
/usr/lib/x86_64-linux-gnu
qt4と書いてある場所を5にしてやる.
/usr/lib/x86_64-linux-gnu/qt5/bin
/usr/lib/x86_64-linux-gnu
もう一度バージョンを確認する.
qmake -query QT_VERSION
5.5.1
これで直ったので再びビルドする.
$ make clean
$ qmake
$ make
終わったと思ったら再びエラーがでた.
$ 3rdparty/qtsingleapplication/qtlocalpeer.cpp: In member function ‘bool QtLocalPeer::sendMessage(const QString&, int)’:
3rdparty/qtsingleapplication/qtlocalpeer.cpp:160:19: error: variable ‘QDataStream ds’ has initializer but incomplete type
QDataStream ds(&socket);
^
$ 3rdparty/qtsingleapplication/qtlocalpeer.cpp: In member function ‘void QtLocalPeer::receiveConnection()’:
3rdparty/qtsingleapplication/qtlocalpeer.cpp:180:26: error: variable ‘QDataStream ds’ has initializer but incomplete type
QDataStream ds(socket);
配布ファイルにインクルードし忘れがあったみたい.公式がおちゃめさん.
./hippo/3rdparty/qtsingleapplication/qtlocalpeer.cpp
の先頭部分にQDataStream
を新しく追加する.
#include "qtlocalpeer.h"
#include <QCoreApplication>
#include <QDataStream>
#include <QTime>
もう一度,
$ make clean
$ qmake
$ make
ようやく完了.
終わりに
Hippo Notesで普通にEvernoteを使うことが出来た.しかし,ビジネスノートを読み込むことができなかったので,結局wineで公式クライアントを使用している.ビジネスノートを使わない人にはいいかもしれない.