PowerShellでg++をつかいcppのソースコードをコンパイル出来ることを確認できました。
![]()

msys2でインストールしたg++でvscodeで書いたソースコードをPowerShellでコンパイルする話
Qt学習の為にWindows環境にmsys2でC++のビルド環境がインストールしてあります。Qt学習の進捗状況は芳しくありませんが、今回はコマンドラインでcppファイルのコンパイルが出来ることを確認してみたいと思います。コンパイラの確認cp...
ライブラリを参照するコンパイルの方法を確認するため、Qtツールキットを使いウィンドウを開くソースコードをコンパイルしてみたいと思います。
コンパイルするソースコード
ファイル名:main.cpp
#include <QtWidgets/QApplication>
#include <QtWidgets/QWidget>
int main(int argc, char* argv[])
{
QApplication app(argc, argv);
QWidget window;
window.setWindowTitle("Hello Qt!");
window.resize(400, 300);
window.show();
return app.exec();
}
コンパイルコマンド
g++ main.cpp `
-IC:\Users\karet\scoop\apps\msys2\current\mingw64\include\qt6 `
-LC:\Users\karet\scoop\apps\msys2\current\mingw64\lib `
-lQt6Gui -lQt6Core -lQt6Widgets `
-o app.exe
/I: … Includeのパス
/L: … Libraryのパス
結果
Directory: J:\qtcpp\02_firstwin
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 2025/12/07 2:48 137634 app.exe
-a--- 2025/12/07 2:46 282 main.cpp
“app.exe”が作成されているのでコンパイルが成功したようです。
Msys2(MinGW)でOpenCVを導入する
ライブラリを参照するコンパイル方法が確認出来ましたので、OpenCVを導入してみたいと思います。
・msys2を起動しpacmanでopencvをインストール
pacman -S mingw-w64-x86_64-opencv
・サンプルコード
ファイル名:main.cpp
#include <opencv2/opencv.hpp>
#include <iostream>
int main()
{
// 読み込み元ファイル
std::string input = "input.jpg";
// 画像読み込み
cv::Mat img = cv::imread(input, cv::IMREAD_COLOR);
// 読み込めなかった場合
if (img.empty()) {
std::cerr << "Failed to load image: " << input << std::endl;
return -1;
}
// 出力ファイル名
std::string output = "output.jpg";
// 書き出し
if (!cv::imwrite(output, img)) {
std::cerr << "Failed to save image: " << output << std::endl;
return -1;
}
return 0;
}
・コンパイルコマンド
PowerShellで以下のコマンドを実行
g++ main.cpp `
-IC:\Users\karet\scoop\apps\msys2\current\mingw64\include\opencv4 `
-LC:\Users\karet\scoop\apps\msys2\current\mingw64\lib `
-lopencv_core -lopencv_imgcodecs -lopencv_highgui `
-o opcv.exe
・実行
生成された”opcv.exe”を実行したところ、同じディレクトリに保存した”input.jpg”が”output.jpg”というファイル名でコピーされていました。

コメント