jl7gmnのblog

yahooブログから移行してきました。アマチュア無線を中心としたブログです。

Qt5

Linux 18.04LTS 64bit Qt5でのCNC3018Pro用 Candle-その2

Qt5 CreatorでのLinux アプリのCandleソースダウンロードからコンパイル、実行まではできましたが、残念なことに、通常のアプリケーションを表示する左下のアイコンをクリックして表示される、常用、すべてで、表示されているインストール済みのアプリケーションの中にCandleも入れてみたいという思いは誰しも思うはずです。Candleアプリを起動するのに、わざわざ、Qt5のCreatorを起動して、ソースを読み込んで、コンパイルして、実行で使用するのは、超面倒です。他の方法でもコンソールでのコマンドで 共有ライブラリの階層までcd で設定し、./Candleでも起動することはできますが、これも、手間です。やはりアイコンワンクリックでCandleを起動したいというのが、一番でしょう。やり方の大筋が書いてあるWebページがありましたが、やはり、一筋縄では行きません。この通りやっても、うまく行きませんでした。結果上手くできたから言うのですが、やはり情報の不足部分を寄せ集めてトータルでどうすればいいかを自分なりにまとめることで、初めて動作までこぎつけることが出来るという、少し根気も必要という事です。つまり、このページだけの情報では不足していてコンパイルでの単独実行ファイルは完成しないということです。また、他の人のwebページには、残念ながらLinux 64bitでのCandleはうごきませんでしたなどというページもあり、私自身最初の頃は多少の不安もありましたが、その点このWebでは、動作しない場合の解決手順として載っているので、動かないという事は無いんだと、その点の迷いは払拭できました。Linuxは17.10 64bitで動く手順でしたので、私のLinux18.04LTS 64bitも大丈夫と言うことで進めたわけです。

http://naisema.blogspot.com/2017/11/install-candle-on-ubuntu-64bit-machines.html

このwebページの流れでやっていくのですが、実は、この作業は一番最後にやることになります。他の作業が必要なのです。しかしこの手順を先に説明です。1はQt5のインストールですので、すでに入れてあるので省略です。2はgit clone にてCandleのリボジトリのクローン複製します。これは、このままで実施します。
3は、インストールしたCandleソースコードのコンパイルですが、端末(コマンドライン)操作になります。3の手順は次のようになっています

$cd Candle/src
$qmake
$make

最初のcdでのCandleの階層クローン複製展開ダウンロードしてしたところの階層に持って行きます。ここのインストールCandleのソースコードを展開保存した階層を自分で決めた場合は、その決めた階層になります。特に問題は無い手順です。
次は、qmakeでコンパイルするのですが、この階層にもqmakeのパスを設定してから行えばこのままでいいのですが、設定してないので、エラーとなります。qmakeのコマンドの場所はフルパスで指定する必要があります。さすれば、qmakeは何処ぞ?ということですが、Qt5のQt Creatorを開きます。前のその1にも記載しました、メニューバーのツール→オプションでQtバージョンタグを開きます。自分のインストールしたQtのバージョンの下の方にある Qt5.14.2.GCC 64bit のqmakeのパスをコピーします。

範囲を選択_016kako

□□□□□〜/Candle/src$/home/※※※※/Qt/5.14.2/gcc_64/bin/qmake
となります。
次はmakeですが、このままでOKです。
□□□□□〜/Candle/src$make

簡単に上のqmakeとmakeを一行で記載して実施するには、次のようにします。
□□□□□〜/Candle/src$/home/※※※※/Qt/5.14.2/gcc_64/bin/qmake  &&  make

上記がqmake と makeの手順になります。これでコンパイルします。この手順だけでは、共有ライブラリしかできません。つまりQt Creatorでのソースコンパイルと何ら変わりません。
あとこのqmakeのコンパイル1回行ってしまうと、2回目はコンパイルしません。qmakeを行ったあとには(拡張子.o)オブジェクトが生成されます。このオブジェクトがある状態ではqmakeはコンパイルしません。ここで、何回か試したりする場合は、コマンドラインで作成されたオブジェクトを消します。
□□□□□〜/Candle/src$make clean
これで、コンパイルで作成されたオブジェクトを全部消せます。

4は最新のx86 Candleをgithub.comからダウンロードし、tar コマンドでフォルダ/opt にextractします。
5では/opt/Candle にコンパイルした Candle x64をコピーします。
6はldd でCandleのシンボルリンクを確認します。

ファイル名は、そのままCandle.proファイルをテキストエディターで修正します。
実は、この作業がコンパイルを行う前にして置かなければならない作業になります。先にコンパイルの仕方を説明していますが、こちらのテキストファイル修正が先です。一番の重要なポイントです。
展開したファイルの中のCandle.proファイルに下記の1行を追加します。このファイルによりコンパイルが実施されます。
追加行:QMAKE_LFLAGS += -no-pie

範囲を選択_019
この1行を追加することで、qmake、makeのコンパイルで、実行ファイルが生成されるようになります。ここで、先のコンパイルを実施します。

□□□□□〜/Candle/src$/home/※※※※/Qt/5.14.2/gcc_64/bin/qmake  &&  make
ファイルがギヤのアイコンになっていれば実行ファイル作成成功です。
このままでも、マウスでCandleファイルをクリックすると実行ファイルなのでCandleが起動します。

7はコンパイル後実行ファイルができている状態にてのショートカットの作成です。
次は、いよいよプログラムの登録ので通常のアプリケーションと同じようにアプリケーションの表にのに入れる作業です。通常のショートカット作成です。
注意点は実行ファイルがあるパスをExecにパス付きで記載することと、アイコンの置き場所にアイコンファイルをコピーしておきます。通常はUbuntuの階層で決まっている/usr/share/app-install/icons/ にアイコンファイルをコピーです。

[Desktop Entry]
Name=Candle
GenericName=Candle
Comment=CNC controller software
Exec=/opt/Candle/Candle
Icon=/usr/share/app-install/icons/candle.png
Terminal=false
Type=Application
Categories=Development;Electronics;

しかしこのCandle.desktopのショートカット作成時は所有者、グループの設定に気をつけます。
作成時は、自分が所有者になります。グループも自分です。ショートカットをLinuxのapplicationsのフォルダに移すときはその階層の所有者(root)、グループ(root)設定にします。 $sudo chown root:root ファイル拡張子付き でファイルを 所有者(root)、グループ設定を(root)に変えられます。スーパーユーザーモードで行います。
また、書き込み(w)=4 ,読み込み(r)=2,実行(x)=1,の設定がとても重要です。自分のフォルダ内で
は、ファイル − wrx wrx wrx と設定してます。$sudo chmod 777 全部許可って感じです。
(2020/05/05修正)
また、書き込み(w)=2 ,読み込み(r)=4,実行(x)=1,の設定がとても重要です。自分のフォルダ内で
は、ファイル 
− rwx rwx rwx と設定してます。$sudo chmod 777 全部許可って感じです。

最初がファイルか、フォルダか、シンボリックかで次が、所有者の書き込み読み込み実行、次がグループの書き込み読み込み実行、その次が他ユーザーの書き込み読み込み実行のアクセス権限設定である。
アイコンファイルなどは自分の所有になっていたりするので、Linuxのアイコンファイルなどにはこのアクセス権を合わせないとコピーできなかったりします。
candle.desktopは1行追加したものを保存します。移す前にプロパティを開きます。アクセス権のタグで
実行:☑プログラムとして実行可能(E)のように☑にします。このチェックのあとにroot権限にします。アクセス権の設定を移動先フォルダにあわせrootになったので、それをLinuxの /usr/share/applications/ にコピーします。また、デスクトップにもCandleショートカットアイコンを置きました。また、アイコン画像も Icon=/usr/share/app-install/icons/candle.png にダウンロードされたフォルダからコピーします。

以上で自分のPCのアプリケーションにも登録ができました。また、ワンクリックでの起動も問題ありません。前後したりしていますが、必要な事を先に行ってからの手順実施が大切です。Linux18.04LTSでの作業は実質2日かかりましたが、何とか完了できました。まだまだわからない点もある中のトライでしたが、Candleがアプリ登録され、アイコン起動できたので完了です。
これで、他の事ができるわけですが、まだまだ、茨の道は続きそうです。
Linuxの基板作成CADとか、ガーバーデータ作成アプリなんかも確認していかなければなりません。Windows10ならもうすぐにでもできているのですが、Linuxでは難儀かもしれません。
誰か先にやってくれている方がいると助かるのですが、これから調査開始です。

つづく?

Linux 18.04LTS 64bit Qt5 でのCNC3018Pro用 Candle-その1

Windows10ノートPCでのCNC3018Proを動かす為の切削アプリCandleはUSBで標準でついてきているので、動作も全く問題なく、実際の基板を削ることができました。ちなみにノートPCは居間での検索用として使っているため、常用はできません。CNC3018Proの組み立てと動作確認までは、ノートPCの役目です。実際は、GatewayのデスクトップPC(OS:Vista)にLINUX 18.04LTSを前に構築してあるので、これを使うことにしていました。なので、実際にCandleのソースをダウンロードしてきて、コンパイルまでをトライすることにしました。CandleはWindows,Linux,Macに対応しています。ここで、コンパイルまで行うためには、高級言語のソフトが必要です。このCandleアプリは、Qtにて作成されているということでしたので、早速最新のQtをダウンロードです。登録はどのアプリにもあるように、名前、メールアドレス他を入力で、フリー版をダウンロードしました。結構な時間はかかります。使うQtコンパイラーのバージョンの最新版1つで問題ないですが、最初わからず、ほとんどの過去バージョンにチェックを入れて全部のQtコンパイラーをダウンロードしてしまいました。Ḡ(ギガ)単位の容量なのでメモリーがない時は、最新版バージョンだけにしてのインストールが賢明です。
Qt Creatorのバージョンは4.12.0です。言い遅れましたが、プラットフォームはQt Creatorになります。
また、QtはいろいろなOS(Android,iOS,Linux,MacOS,Windowsの各オペレーティングシステム)の開発プラットフォームなのです。とにかく、すごいプラットフォームであることが、色々と調べて行くうちに、分ってきます。
ダウンロード後は、サンプルをクリックすると本当にたくさんあるので、どれか簡単なものということで、Analog Clock Window Exsampleをクリックして、コンパイルしてみます。中身は、C言語ですので、見たことのあるコードも見えます。あまり気にしないで、動作を楽しむだけです。コンパイルすると、きれいなフォームで時計が動作しました。コンパイルは、コーディングしないので、ボタンを押すだけで、操作は超簡単です。と、ここまでは、Qtをインストールして動作が問題ないかの確認です。
コンパイルでエラーも出ずに、時計のフォームが上手く表示されてますので、インストール環境はOKです。まずは、Candleのソースコードをダウンロードするのですが、その前に、久々のLinuxなので、コマンドライン用の端末の操作を思い出さなければなりません。当然よく使う、端末アプリは、メニューに貼り付けておきます。まずは、インストールの仕方は、基本Web情報のコピペですが、
$ aptitude show qt5-default などから直ぐに思い出せます。あとは、権限などの確認やコマンドでの操作、su ,chmod chown,ls,ls -l,clear,cd,mkdir,qmake,make,ldd,etcの確認を実際に色々と試して見ました。ここのページが確認するのには良かったです。https://www.server-world.info/query?p=command
Candleのダウンロードしたソースコードは階層の/home/※※※※/ダウンロード/ に保存されます。
※※※※は各自のフォルダ名です。階層を含めると次のように最新版がダウンロードされます。
/home/※※※※/ダウンロード/Candle_1.1.7.tar.gz 
これを解凍するのですが、解凍場所は、新たに /home/opt/Candle/src上に設定するのが良い階層のようですが私は、最初わからなかった為、/home/Candle/src のようにしてしまいましたので、そのまま実施しています。特に問題はありません。QtでCandleのソースコードコンパイルする為の読込先なので、記憶しておく必要があると思っていましたが、Qt Creatorプラットフォーム上に記録で残りますので、全然、気にしなくてもいいです。Candleのソースコードのダウンロードをして、Qt Creatorで読み込みします。プロジェクトファイルのcandle.pro を選択し、プロジェクトを開くで、candle[master]プロジェクトとして表示されます。
[master] - candle - Qt Creator_008
中身を見てみます。今回はコンパイルするだけなので、中身を見ることは特には必要ないです。がやはり確認します。
[master] - candle - Qt Creator_009
ヘッダーなどは、たくさんあるので、全部は開かず、主要なもののみを閲覧しました。
コンパイルのためには、ツール→オプションでkitsタグ上で、Qtのインストール
バージョンを確認します。また、Qtのインストールしたqmakeのパスも確認します。
このqmakeのパスは後で直接端末のコマンドでのコンパイル時に使います。
コンパイラータグでは、QtでのCandleコンパイル要件にあるMinGWのインストールが
あるかも確認します。このコンパイラは、別途インストールが必要なので忘れずに
インストールしておきます。
Candleのソースコードが読み込みましたので、時計のときと同じくビルドします。
ビルド(ハンマー)完了後、実行▷です。
コンパイルがされて、Candleのフォームが表示されます。

Candle_010
バックが黒で、しかも通信もNot connectedなので、Serviceで設定します。
Settings_011
connectionの接続は、私の場合は Port:ttyUSB0、Baud:11520 に
設定です。各PCの状況でPortは変わります。

Tool model のtype はFlat から Conicに変えました。それに合わせて
Angle:30.000,Diameter:3.000,Length:15.000 と私の好みでの設定です。

あとはColorsの Backgroundが黒色から白に変更とToolgが黒から黄色
に変更しています。これも好みです。
他は、オリジナルのままでOKで保存します。

以上で、Qt Creator上では問題なく動作することがわかりました。
しかし、このプラットフォーム上だけでしか動かせません。コンパイル後の
Candleファイルは共有ライブラリで、ワンクリックでは起動できません。
目的とするところは、実行ファイル形式のCandleファイルです。
そのため、続きとなります。

つづく ?





アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

QRコード
QRコード
  • ライブドアブログ