差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
wxwidgets:helloworld-cmake [2025/05/23 09:30] – freemikan | wxwidgets:helloworld-cmake [2025/05/24 07:37] (現在) – [プログラムのソースコード] freemikan | ||
---|---|---|---|
行 1: | 行 1: | ||
====== CMakeを使ったHello World ====== | ====== CMakeを使ったHello World ====== | ||
+ | {{: | ||
- | {{: | ||
+ | ===== 前提 ===== | ||
+ | [[install|インストールのページ]]に従い、wxWidget 3.2がインストール済みであることを前提とします。 | ||
+ | また、CMakeもインストールされている必要があります。 | ||
- | https://docs.wxwidgets.org/latest/ | + | ===== 作業ディレクトリ ===== |
+ | 作業ディレクトリは $HOME/code/wxwidgets/hello-wxwidgets-cmake とします。 | ||
- | + | < | |
- | 作業ディレクトリ | + | 繰り返しになりますが、こういった名前やパスは、何かしら決めておかないと説明がしづらいので提示しているだけです。 |
+ | 同じ名前にする必要は全くありません。 | ||
+ | ご自身の好みの場所に好きな名前で作成してください。 | ||
+ | </ | ||
<cli> | <cli> | ||
- | $ cd ~/ | + | $ mkdir -p ~/ |
- | $ mkdir hello-wxwidgets-cmake | + | $ cd $_ |
- | $ cd hello-wxwidgets-cmake | + | |
</ | </ | ||
- | __main.cpp__ | ||
- | <code cpp> | + | ===== プログラムのソースコード ===== |
- | //////////////////////////////////////////////////////////////// | + | プログラムのソースコードは、[[wxwidgets: |
- | // https:// | + | main.cppという名前でコピーを作成しておきます。 |
- | //////////////////////////////////////////////////////////////// | + | |
- | // Start of wxWidgets "Hello World" Program | ||
- | #include < | ||
- | |||
- | class MyApp : public wxApp | ||
- | { | ||
- | public: | ||
- | bool OnInit() override; | ||
- | }; | ||
- | |||
- | wxIMPLEMENT_APP(MyApp); | ||
- | |||
- | class MyFrame : public wxFrame | ||
- | { | ||
- | public: | ||
- | MyFrame(); | ||
- | |||
- | private: | ||
- | void OnHello(wxCommandEvent& | ||
- | void OnExit(wxCommandEvent& | ||
- | void OnAbout(wxCommandEvent& | ||
- | }; | ||
- | |||
- | enum | ||
- | { | ||
- | ID_Hello = 1 | ||
- | }; | ||
- | |||
- | bool MyApp:: | ||
- | { | ||
- | MyFrame *frame = new MyFrame(); | ||
- | frame-> | ||
- | return true; | ||
- | } | ||
- | |||
- | MyFrame:: | ||
- | : wxFrame(nullptr, | ||
- | { | ||
- | wxMenu *menuFile = new wxMenu; | ||
- | menuFile-> | ||
- | " | ||
- | menuFile-> | ||
- | menuFile-> | ||
- | |||
- | wxMenu *menuHelp = new wxMenu; | ||
- | menuHelp-> | ||
- | |||
- | wxMenuBar *menuBar = new wxMenuBar; | ||
- | menuBar-> | ||
- | menuBar-> | ||
- | |||
- | SetMenuBar( menuBar ); | ||
- | |||
- | CreateStatusBar(); | ||
- | SetStatusText(" | ||
- | |||
- | Bind(wxEVT_MENU, | ||
- | Bind(wxEVT_MENU, | ||
- | Bind(wxEVT_MENU, | ||
- | } | ||
- | |||
- | void MyFrame:: | ||
- | { | ||
- | Close(true); | ||
- | } | ||
- | |||
- | void MyFrame:: | ||
- | { | ||
- | wxMessageBox(" | ||
- | " | ||
- | } | ||
- | |||
- | void MyFrame:: | ||
- | { | ||
- | wxLogMessage(" | ||
- | } | ||
- | </ | ||
+ | ===== CMakeLists.txt ===== | ||
__CMakeLists.txt__ | __CMakeLists.txt__ | ||
<code cmake> | <code cmake> | ||
- | cmake_minimum_required(VERSION 3.5 FATAL_ERROR) | + | cmake_minimum_required(VERSION 3.10 FATAL_ERROR) |
project(hello-wxwidgets-cmake LANGUAGES CXX) | project(hello-wxwidgets-cmake LANGUAGES CXX) | ||
- | # https:// | + | find_package(wxWidgets |
- | find_package(wxWidgets REQUIRED) | + | |
include(${wxWidgets_USE_FILE}) | include(${wxWidgets_USE_FILE}) | ||
行 115: | 行 43: | ||
</ | </ | ||
- | ビルドディレクトリ | + | https:// |
+ | ===== ビルドディレクトリの作成 ===== | ||
<cli> | <cli> | ||
$ mkdir build | $ mkdir build | ||
行 122: | 行 51: | ||
</ | </ | ||
- | CMakeコンフィギュレーション | ||
+ | ===== CMakeコンフィギュレーションの実行 ===== | ||
<cli> | <cli> | ||
$ cmake .. | $ cmake .. | ||
- | -- The CXX compiler identification is GNU 13.3.0 | ||
- | -- Detecting CXX compiler ABI info | ||
- | -- Detecting CXX compiler ABI info - done | ||
- | -- Check for working CXX compiler: / | ||
- | -- Detecting CXX compile features | ||
- | -- Detecting CXX compile features - done | ||
- | -- Found wxWidgets: -L/ | ||
- | -- Configuring done (0.3s) | ||
- | -- Generating done (0.0s) | ||
- | -- Build files have been written to: / | ||
</ | </ | ||
- | ビルド | ||
+ | ===== ビルドの実行 ===== | ||
<cli> | <cli> | ||
$ make | $ make | ||
- | [ 50%] Building CXX object CMakeFiles/ | ||
- | [100%] Linking CXX executable hello-wxwidgets-cmake | ||
- | [100%] Built target hello-wxwidgets-cmake | ||
</ | </ | ||
- | ビルド結果の確認 | + | あるいは |
+ | |||
+ | < | ||
+ | $ cmake --build . | ||
+ | </ | ||
+ | ==== 結果の確認 ==== | ||
<cli> | <cli> | ||
$ ls -l | $ ls -l | ||
行 159: | 行 80: | ||
</ | </ | ||
- | 実行 | ||
+ | ===== Hello Worldプログラムの実行 ===== | ||
<cli> | <cli> | ||
$ ./ | $ ./ |