如何不在其他机器(x86_64 Linux)上运行 Pi 特定代码? [关闭]
Posted
技术标签:
【中文标题】如何不在其他机器(x86_64 Linux)上运行 Pi 特定代码? [关闭]【英文标题】:How not to run Pi specific code in other machines (x86_64 Linux)? [closed] 【发布时间】:2016-06-03 01:08:47 【问题描述】:在编写 Raspberry Pi 应用程序时,我大部分时间都使用我的 PC,因为它比 Pi 快一点。
今天我在调用 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 部分),但在 PC 上运行时执行其余部分。
实际上我应该如何处理这个问题?
【问题讨论】:
此时,只有您看到了您的代码,因此只有您知道要切割哪些部分。通常,您需要模拟无法在 PC 上运行的部分。 我应该像插件一样在运行时运行 Pi 特定的代码吗? 不,只需编写您自己的替换库来模拟您要替换的库的功能。 我从未接触过模拟区域。您介意就使用哪些工具提供介绍性建议吗(赞赏跨 Linux/Windows 的可移植性)? 【参考方案1】:我的第一个解决方案是将特定于 pi 的代码包含在类似
中#ifdef __arm__
/* pi specific stiff */
#endif
我现在手头没有 PI,所以我不确定宏 __arm__
是否正确,但 gcc
和 g++
应该可以工作,请参阅 sourceforge article on architecture defines。
这比模拟所有内容要容易得多,但另一方面,代码甚至没有在您的 PC 上编译,因此这里甚至不会出现编译器错误。
【讨论】:
“代码甚至没有在你的 PC 上编译” 是一种冒险的假设......有交叉编译器,你知道......事实上有一整套交叉编译器和模拟器,很可能在你的PC上为另一个平台编写、编译和运行代码,这就是我几年前的谋生手段以上是关于如何不在其他机器(x86_64 Linux)上运行 Pi 特定代码? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
在 x86_64 linux 机器上编译 gentoo-bionic