ジャンル不定の日記です。

C++とQtでHello world!

ここ数日古いPCで動きそうなブラウザ探してたが、まあ見つからん。
コロナ怖くて家にこもってるし、自分で作っちゃうか!まあ実用的なの作れるとは思えんがw

というわけなんだが、C++とかほとんど触ったこと無いしHello world!してみた。
メモリ節約を考えると小分けにして動的ロードする感じになると思うんだが、数が多くなるとC++がいいよね?
ってわけでC++にした。
あと、KDE使ってるのにFirefoxとかのためにGTKアプリ使わないといけないのが嫌なんで、Qt対応も考えて作ろうと思うんでQtも触ってみた。

C++でHello world!

hello.cpp
#include <iostream>

using namespace std;

int main(){
  cout << "Hello world." << endl;
  return 0;
}
<<記号があってキモいw

$ g++ -o hello hello.cpp
コンパイラはgcc入ってればC++もコンパイルできるようだが、コマンドはgccじゃなくてg++になるみたい。
-oオプションをつけない場合は.oファイルが作成されるらしい。つけると実行ファイルhelloが作成される。

まああまり理解できないんで必要なら調べる。

QtでHello world!

main.cpp
#include <QApplication>
#include <QPushButton>

int main(int argc, char* argv[])
{
    QApplication app(argc, argv);

    QPushButton hello("Hello world!");
    hello.resize(100, 30);

    hello.show();
    return app.exec();
}

$ qmake -project
.proファイルが作成される。
拡張子の左側はプロジェクト名だが、カレントディレクトリと同名になる。つまりディレクトリ名がプロジェクト名。
.cppファイルはプロジェクトのルートディレクトリに置いたが、srcとか下の階層に分けることもできるみたい。

QT += widgets
を.proファイルに追加。
この記述がされてないHello world!のサイトが多いようなんだが、QT5だと書かないとmakeでエラーになる。

$ qmake
オプション無しでqmakeすると.proを元にMakefileが作成される。

$ make
実行ファイルが作成される。

あと、TKを使わないで直接Xで描画するのもやってみたい。