2016-06-03 5 views
0

При кодировании приложения Raspberry Pi я использую мой компьютер большую часть времени, так как он немного быстрее, чем Pi.Как не запускать определенный код Pi на других машинах (x86_64 Linux)?

Сегодня я получил следующее сообщение, когда WiringPi конкретный код (wiringPiSetup();) получил колл:

piBoardRev: Unable to determine board revision from /proc/cpuinfo 
-> No hardware line 
-> You may want to check: 
-> http://www.raspberrypi.org/phpBB3/viewtopic.php?p=184410#p184410 

Я хотел бы, чтобы пропустить Raspberry Pi определенный код (например это WiringPi часть), но выполнить остальные при работе на ПК.

Собственно, как я должен подходить к этой проблеме?

+3

На данный момент вы единственный, кто видел ваш код, поэтому вы единственный, кто может знать, какие части разрезать. В общем, вам нужно * mock * части, которые вы не можете запустить на своем ПК. –

+0

Должен ли я запускать определенный код Pi во время выполнения, например плагин? – KcFnMi

+1

Нет, просто напишите свою собственную библиотеку заметок, которая издевается над функциональностью библиотеки, которую вы заменяете. –

ответ

1

Мой первый решение было бы так включать пи специальный код в чем-то вроде

#ifdef __arm__ 
    /* pi specific stiff */ 
#endif 

не имеют PI под рукой прямо сейчас, так что я не совсем уверен, что если макрос __arm__ является правильно, но gcc и g++ должны работать, см. sourceforge article on architecture defines.

Это намного проще, чем издеваться над всем, но, с другой стороны, код даже не компилируется на вашем ПК, поэтому даже ошибки компилятора не появятся здесь.

+0

* «код даже не скомпилирован на вашем ПК» * является своего рода рискованным предположением ... есть кросс-компиляторы, вы знаете ... на самом деле есть целые пучки кросс-компиляторов ** и ** эмуляторы там очень возможно написать, скомпилировать и запустить код для другой платформы на вашем ПК, вот что я сделал для жизни несколько лет назад – specializt