これをよく読んで、私がやりたいことを理解してください。
- Xcodeをコンパイルできるようにしたいのですが、Xcodeでデバッグできるようにするためだけです。
- Xcodeを使用してコードをコンパイルしたりArduinoボードにアップロードしたりしたくありません。代わりに、「外部エディターを使用」モードでArduinoIDEを使用します。
私がしたこと(同じことをしたいと思うかもしれない人々のための将来の参考としても):
- プロジェクト設定(左ペインのプロジェクトファイルをクリック)
- 多くのエラーを回避するために、コンパイラをGCCに変更しました。
ヘッダー検索パスとライブラリ検索パスに次のパスを追加しました。
- /Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/lib/gcc/avr/4.3.2/include
- /Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/avr/include
- /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino
(アプリケーションフォルダー以外の場所にArduino.appをインストールした場合は、それに応じてパスを調整する必要があります。)
main.cppに、を含めまし<WProgram.h>
たが、それだけでは不十分でした。-mmcu=somechipname
フラグとしてコンパイラに渡すことができず、デバイスが定義されavr/io.h
ず、定義されたファイルを含めることができないため、未定義の識別子エラー(SPCR、SPE、MSTR、SPR1、SPR0)が発生していましたそれらのシンボル。<avr/iom328p.h>
チップに適切なヘッダーファイルを手動でインクルードすることで、この問題を回避しました。
それは私がどこまで得たかです。
今、私はこれらのエラーを受け取ります:
Undefined symbols for architecture i386:
"_init", referenced from:
_main in main.o
"_setup", referenced from:
_main in main.o
"_loop", referenced from:
_main in main.o
"_pinMode", referenced from:
SBSetup() in main.o
"_digitalWrite", referenced from:
SBSetup() in main.o
邪悪な問題のあるコードを含むmain.cpp全体は次のとおりです。
#include <WProgram.h>
#include <avr/iom328p.h> // Getting around warning "device type not defined"
#define NumLEDs 25
#define clockpin 13 // CI
#define enablepin 10 // EI
#define latchpin 9 // LI
#define datapin 11 // DI
int LEDChannels[NumLEDs][3] = {0};
int SB_CommandMode;
int SB_RedCommand;
int SB_GreenCommand;
int SB_BlueCommand;
void SBSetup(void) {
pinMode(datapin, OUTPUT);
pinMode(latchpin, OUTPUT);
pinMode(enablepin, OUTPUT);
pinMode(clockpin, OUTPUT);
SPCR = (1<<SPE)|(1<<MSTR)|(0<<SPR1)|(0<<SPR0);
digitalWrite(latchpin, LOW);
digitalWrite(enablepin, LOW);
}
int main(void)
{
init();
setup();
for (;;)
loop();
return 0;
}
これについて私は何をしますか?