Arduino、Stino、または別のIDE /ツールチェーンが使用されているかどうかを検出する方法はありますか?


8

Arduino IDEとStinoの間にいくつかのイライラする違いがあることに気づきました(主に特定のヘッダーファイルのインクルード周辺)。これらはおそらくいずれかまたは両方のパーティーでフォローアップが必要なバグですが、それまでの間、コードを編集せずに両方でコンパイルできるようにしたいと考えています。これは、コードを使用できないようにユーザーをロックしたくないためです。

すぐに利用できる(ツールチェーンやIDEを変更する必要がないなど)マクロを使用して、使用中のマクロを検出できますか?

たとえば、多くのライブラリには次のスニペットがあります。

#if ARDUINO >= 100
  #include "Arduino.h"
#else
  #include "WProgram.h"
#endif

しかし、StinoとArduinoの両方がこれを定義しています。


1
私はStinoツールチェーンをかなりのぞいて、プルリクエストを1つまたは2つ送信しました。#define STINO_COMPILERコンパイル時の定義に追加するようなものを取得するのはかなり簡単なはずです。リポジトリを管理する人は、そのような賢明なプルリクエストに対して非常にオープンであり、メインラインリポジトリに適切に配置されると、エンドユーザーの変更を必要としません。
コナーウルフ2014年

偽の名前に感謝-はい、それは良い計画のように思えます。Stinoのサポートだけが本当に必要だと思います。Eclipseが気になるほど頻繁に使用されるのを見たことはありません。
Cyber​​gibbons 2014年

これは実際の解決策ではありませんが、コードの2つのバージョンを追加したり、どういうわけかコメントを付けたりすることもできます。次の行のコメントを外して、Stinoの他の行を削​​除します。| @Fake Arduino IDEでそのコードを使用するとき、それは問題でしょうか?
匿名ペンギン

Anonymous Penguinのコメントをさらに進めるために、コンパイラごとにポンドを定義することができます。そして、コードのデフォルトバージョンにはエラーがあり、ユーザーが使用しているコンパイラを指定する行にコメントしない限り実行されません。このようなもの#if !defined(STINO_COMPILER) #error please uncomment one of the compiler lines #endif
portforwardpodcast 2015年

回答:


1

Stinoは、すでにインストールされているArduino IDEを使用すると主張しているため、コンパイル時に区別することはできません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.