いろいろなことが今年もあった。
来年も、いろいろなことがあるのだろう。
みなさん、今年一年お疲れ様でした。
この記事のリンク用URL&トラックバックURL : https://red-souls.jp/ichounoki/rnote/diary/20201229_114312434786.htm
キーワード: 年末
いろいろなことが今年もあった。
来年も、いろいろなことがあるのだろう。
みなさん、今年一年お疲れ様でした。
この記事のリンク用URL&トラックバックURL : https://red-souls.jp/ichounoki/rnote/diary/20201229_114312434786.htm
キーワード: 年末
ここんところ、夜になるとけっこう冷え込んでいる。
昼間はそこそこあったかいのだが・・・。
体調をくずさないように気をつけている。
この記事のリンク用URL&トラックバックURL : https://red-souls.jp/ichounoki/rnote/diary/20201206_185940049895.htm
以前、「複数バージョンの gcc, g++ を切り替える方法」に投稿した、 update-alternatives を用いて開発言語を切り替える話の続き。
まず、 gcc と clang の切り替えのための設定:
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 20
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/clang 10
sudo update-alternatives --config cc
cc を gcc または clang に切り替える動作をする。次に gcc のバージョンの切り替えの設定で gcc のバージョンを切り替える。つまり、上の設定で gcc が選択されているとき、下の設定で選択された gcc のバージョンが実行されるという形になる。
gcc のバージョンの切り替えの設定:
sudo update-alternatives
--install /usr/bin/gcc gcc /usr/bin/gcc-8 80
--slave /usr/bin/c++ c++ /usr/bin/g++-8
--slave /usr/bin/g++ g++ /usr/bin/g++-8
--slave /usr/bin/cpp cpp /usr/bin/g++-8
--slave /usr/bin/gfortran gfortran /usr/bin/gfortran-8
--slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-8
--slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-8
--slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-8
--slave /usr/bin/gcov gcov /usr/bin/gcov-8
--slave /usr/bin/gcov-dump gcov-dump /usr/bin/gcov-dump-8
--slave /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-8
--slave /usr/bin/ld ld /usr/bin/x86_64-linux-gnu-ld
sudo update-alternatives
--install /usr/bin/gcc gcc /usr/bin/gcc-9 90
--slave /usr/bin/c++ c++ /usr/bin/g++-9
--slave /usr/bin/g++ g++ /usr/bin/g++-9
--slave /usr/bin/cpp cpp /usr/bin/g++-9
--slave /usr/bin/gfortran gfortran /usr/bin/gfortran-9
--slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-9
--slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-9
--slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-9
--slave /usr/bin/gcov gcov /usr/bin/gcov-9
--slave /usr/bin/gcov-dump gcov-dump /usr/bin/gcov-dump-9
--slave /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-9
--slave /usr/bin/ld ld /usr/bin/x86_64-linux-gnu-ld
sudo update-alternatives
--install /usr/bin/gcc gcc /usr/bin/gcc-10 100
--slave /usr/bin/c++ c++ /usr/bin/g++-10
--slave /usr/bin/g++ g++ /usr/bin/g++-10
--slave /usr/bin/cpp cpp /usr/bin/g++-10
--slave /usr/bin/gfortran gfortran /usr/bin/gfortran-10
--slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-10
--slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-10
--slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-10
--slave /usr/bin/gcov gcov /usr/bin/gcov-10
--slave /usr/bin/gcov-dump gcov-dump /usr/bin/gcov-dump-10
--slave /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-10
--slave /usr/bin/ld ld /usr/bin/x86_64-linux-gnu-ld
gcc と同様に clang のバージョンの切り替え設定もしようと思っていたが、一部のファイルのインストールに失敗し用意できていないので、今回は見送り。ちなみに、現在インストール済みの clang は version 10 のみである。
この記事のリンク用URL&トラックバックURL : https://red-souls.jp/ichounoki/rnote/dev/20201201_023830765384.htm
キーワード: ubuntu update-alternatives
ツールが使いづらいとかいう話ではなく、開発環境の入手が困難なのだ。
dotnet で GUI というと、ソースコードをエディタで書いて GUI アプリケーションを作ることは不可能ではないが、時代を30年ほど遡る行為だろう。既に20年は前から、このような場合は IDE を使いデザインモードも使って RAD 開発をするのが当たり前なのだから。
代わりに mono と GTK# を使う手があり、この方法での IDE としては monodevelop 一択なのだが、 ubuntu には、もうかなりの期間の間、 monodevelop のパッケージがリリースされていないため、自前でビルドする必要がある。
そこで、まず、 monodevelop の git のサイトなどを見て、下のようにすれば monodevelop のビルドができることが分かったので試した。
$ git clone https://github.com/mono/monodevelop/ --recursive
$ cd monodevelop
$ ./configure --profile=gnome
$ make
make の途中で、エラー62件で中止された。monodevelop の issue への投稿を見ると、2019年1月に、構成の冗長性を修正したというコミットがされて以降、 Linux 環境では monodevelop のビルドが通らない状態がずっと続いており、解決のめどは立っていないようだ。(どうも Linux 版はこのまま放置されそうだ。)パッケージが長期間リリースされない理由は、恐らくこのビルドが通らないことが原因だろう。
そこで、問題のコミット以前の状態まで git reset --hard
そこで、以前のリリースのソースアーカイブをダウンロードしてみたが、 make の途中で git を使う処理が入るようで、 git でクローンしたプロジェクトではないので当然エラーになってしまい、ビルドが通らない。
そこで、 wine に windows 版の monodevelop をインストールすることを考えたが、 windows 版の monodevelop はソースコードしか提供されないそうだ。
そこで、 wine に windows 版の monodevelop をビルドする環境を構築しようとしたが、それには Visual Studio 2017 のインストールが必要となることが分かった。
そこで、インストールを試みたが、 wine はインストーラを起動できず失敗することが分かった。 wine に mono がインストールされている状態では mscoree.dll を使おうとして、 mono ではだめなようで失敗するようだ。
そこで、 GUI を用いないサイレントインストールを試みたが、 GUI を用いないインストール形式でも同じエラーが出るようでだめだった。
そこで、 wine に .Net Framework をインストールしようとしたが、しばらく前の wine のバージョンから .Net Framework は動作が壊れてしまっているとのことで、 winetricks はインストールを中止してしまう。
さて、ここまであれこれ手を尽くしてあがいたが、どの方法も全て解決策が塞がれており、文字通りの八方塞がり状態だ。
他には、dotnet での GUI 開発環境として Avalonia UI や AvalonStudio もあるのだが、どちらも現状、環境が構築できない状態だ。(公式サイト通りの方法で構築しようとしても途中でエラーを起こす。)
Linux での GUI アプリケーション開発環境、どんだけ構築困難なの・・・。
この記事のリンク用URL&トラックバックURL : https://red-souls.jp/ichounoki/rnote/diary/20201129_210153852159.htm
キーワード: Linux monodevelop Avalonia UI AvalonStudio RAD mono dotnet
作成したプロジェクトの <プロジェクト名>.csproj ファイルを開き、
TargetFramework タグの内容で指定する。
netcoreapp3.1・・・dotnet core 3.1 を指定する場合。
net5.0・・・ .Net 5.0 を指定する場合。
指定した dotnet のバージョンにより、C#の規定のバージョンも変化する。
dotnet core 3.x の場合、 C# 8.0
.Net 5.0 の場合、 C#9.0
が使用される。
例えば、 switch 文の case <条件式> に、' > 2' などのリレーショナルパターンを使用したい場合は、 C# 9.0 以降が必要になるため、このような場合は TargetFramework に net5.0 と指定してやるとよい。
この記事のリンク用URL&トラックバックURL : https://red-souls.jp/ichounoki/rnote/memo/20201129_024427590468.htm
キーワード: dotnet TargetFramework C#