· 

WSL+MinGWでクロスコンパイル(1)

時々、DLLを作ることがあるんですが、Visual Studio(Visual Studio Code除く)とか使わずに何とかするのが目標です。

まずは、WSL+MinGW+VSCodeでクロスコンパイル環境を構築して、Windowsで実行できるソフトを作ります。なぜWSLなのか、、、やっぱりWindowsは汚れやすくて、汚れちゃったときの影響が大きいから。

コンパイルまでやれる環境は以前やったのでこちら参照してください。

では適当なフォルダを作って、移動して

code .

でVSCodeを実行。で、とりあえず、study1.cを作る。

なんか出るのでインストールを押す。

最終的にこんな感じになる。

なってなかったら、ファイル-->ユーザー設定-->拡張機能(いやこの画面見ている時点で表示されているんだけど)でインストールする。

で、おきまりのHello world。

#include <stdio.h>

int main(int argc,char** argv){
    printf("Hello world.\n");
}

ここからが、ややこしい。

表示-->コマンドパレット

c/c++

と入力して、出てきたリストから「C/C++:構成の編集(JSON)」を選ぶ。

c_cpp_properties.jsonが勝手にできるので、これはこれで放置(あとでいじるかもしれない)。

一旦、アクティブな表示をstudy1.cにする。

表示-->コマンドパレット

で、「タスク:既定のビルドタスクを構成する」を選択。(一度選んじゃった後なので「最近使用したもの」に出ちゃってます;)

下の絵のように選択(あとで変えるかもしれないので、なんでもいい)。

tasks.jsonが勝手にできる。

一旦、アクティブな表示をstudy1.cにする。

次にデバッグの設定をするので、

ここを押して、

ここを押すと、こうなる。

C++(GDB/LLDB)を押す。

右下にひそやかに出る「構成の追加...」を押す。(できるファイル"launch.json"がどのサイトとも全然違っていてなんでなんでって半日くらい悩みました。認知機能に障害があるのでこれに気付かなくて、、、)

で、「C/C++: (gdb)起動」を押す。

勝手に"launch.json"ができる。

よく見ると、「プログラム名を入力してください」ってところがあるので

 

って変更して、「CTRL+S」を押して保存。

で、再度、study1.cを表示して、再生ボタンっぽいやつを押す。

すると、何やらばたばたしたあと、

こうなる。

とりあえずうまくいったっぽい!ここまでくると、VSCodeでブレークポイントはって(張って?貼って?)、デバッグもできます。変数も見れる!

 

、、、いやー意外としんどかった。Makefileつくってmakeしたほうが簡単、、、だけど、後でVSCode内でデバッグもできるようにするにはこの手順が(たぶん)必要。

まだWSL内でしか動かない実行ファイルなので、この後も続きます。

 

 

一か月以上振りの更新、、、あらゆるものが降りかかってきて、土日になんもしたくない日もありましたよ。こんな仕打ちある?って思ったり。でもまぁそういうことがあるから、自分はそういうことしないように気を付けようと思う。歳とると直接しかってくれる人はほぼいない。まずは自分が傲慢なことを言わなかったか、謝罪するしかないような問いを投げて威圧しなかったか、日々反省を忘れてはいけない。まぁそれが難しいんだけど、努めることが大事だと。