* Linux(Ubuntu)のMonoでC#のCoreTweetをコンパイル

:CATEGORIES: C#,TwitterAPI

 ファイルのタイムスタンプをみたところ,24日の未明のようですが,Monoでコンパイルが成功したものと思っていました。ところがあると思っていたexeの実行ファイルがどこにも見当たらず,成功した形跡はありませんでした。

 Googleで調べながら試したところ,同じディレクトリにCoreTweet.dll置いた前提で,mcs -r:CoreTweet.dll Program.cs とやるとProgram.exeが一瞬で出来上がりました。実行は,mono Program.exe です。

tu motoken_tw 200 0.26s user 0.06s system 36% cpu 0.903 total

mono Program.exe 0.43s user 0.02s system 56% cpu 0.792 total

 どちらも200件の最新ツイートを読み込むものですが,Rubyスクリプトの方がCPUの使用率が少し高めのものの実行時間が短いようです。コンパイルした実行ファイルの方が早いと言われているので意外な結果でした。

参考:
【 time 】コマンド(外部コマンド)――コマンドの実行時間と実行時のシステムリソース情報を計測する:Linux基本コマンドTips(252) - @IT https://www.atmarkit.co.jp/ait/articles/1810/25/news022.html

  • r:System.Numerics オプションを追加して、コンパイルします。

$ mcs -r:System.Numerics sample.cs
$ mono sample.exe
20
BigInteger を使うことができました。

以下、まとめです。

C# コードに using System.Numerics を追加する。
mcs コマンドに -r:System.Numerics を追加する。

[source:]Mono で BigInteger を使う - C#練習日記 http://noriok.hatenadiary.jp/entry/2015/08/29/132345

 ソースファイルのusingは,次の3つだけで追加はしていません。


using System;
using System.Collections.Generic;
using System.IO;

 ネットの情報をみると,次のようなものがありましたが,usingの仕組み自体をまだ理解しておらず,pythonのimportなどとは違っているような感じです。


using CoreTweet;
using static CoreTweet.OAuth;