C++ 如何使用cl编译器在windows中启动arduino
我刚刚为arduino购买了一个工具包,在我得到这个工具包之前,我想开始发现这些库。看起来arduino依赖于自己的IDE。在arduino的文件夹中,有一个C++ 如何使用cl编译器在windows中启动arduino,c++,visual-studio,arduino,cl,C++,Visual Studio,Arduino,Cl,我刚刚为arduino购买了一个工具包,在我得到这个工具包之前,我想开始发现这些库。看起来arduino依赖于自己的IDE。在arduino的文件夹中,有一个main.cpp,因此我想使用cl编译器visual studio 2013编译此文件。不幸的是,没有自述文件。我不知道应该添加和使用哪些库。在main.cpp中 #include <Arduino.h> //Declared weak in Arduino.h to allow user redefinitions. int
main.cpp
,因此我想使用cl
编译器visual studio 2013编译此文件。不幸的是,没有自述文件。我不知道应该添加和使用哪些库。在main.cpp
中
#include <Arduino.h>
//Declared weak in Arduino.h to allow user redefinitions.
int atexit(void (*func)()) { return 0; }
// Weak empty variant initialization function.
// May be redefined by variant files.
void initVariant() __attribute__((weak));
void initVariant() { }
int main(void)
{
init();
initVariant();
#if defined(USBCON)
USBDevice.attach();
#endif
setup();
for (;;) {
loop();
if (serialEventRun) serialEventRun();
}
return 0;
}
#包括
//在Arduino.h中声明为弱,以允许用户重新定义。
int atexit(void(*func)(){return 0;}
//弱空变量初始化函数。
//可以由变量文件重新定义。
void initVariant();
void initVariant(){}
内部主(空)
{
init();
initVariant();
#如果已定义(USBCON)
USBDevice.attach();
#恩迪夫
设置();
对于(;;){
loop();
如果(serialEventRun)serialEventRun();
}
返回0;
}
当我运行时(即在同一文件夹中)
cl/EHsc main.cpp/Fetest.exe
即使Arduino.h
在同一个文件夹中,我还是收到了这个错误
main.cpp(20):致命错误C1083:无法打开包含文件:“Arduino.h”:没有此类文件或目录
我的问题是,不使用IDE和cl
编译器是否可以运行库?可能不行。Arduino库通常要在嵌入式处理器(如AVR)上运行。如果他们访问处理器的任何硬件,那么您将很难编辑这些库,使它们在cl编译器下的Windows上运行
另一个问题是,这些库是用gcc编译的,gcc具有cl所没有的特性
但是,如果你能说出你使用的是什么工具箱和什么库,而不是含糊其辞,这会有所帮助。我甚至不确定Arduino是否与cl编译器完全兼容,也许你更愿意在Visual Studio中使用它来为Arduino编程。@DavidGrayson,该文件位于.exe目录下。问题是角括号。将此
更改为“Arduino.h”,但它会引发另一个错误\stdlib.h(114):错误C3646:“属性”:未知重写说明符。我不确定arduino是否与编译器兼容。如果可能的话,我计划使用arduino的所有库。我想开始至少与简单的项目,如LED闪烁。我在Youtube上看到一些ppl使用visual studio。使用MinGW
怎么样?您需要某种AVR或Arduino模拟框架来实现这一点,您不能只使用cl编译库。LED通常可以通过Arduino函数pinMode
和digitalWrite
打开。Arduino IDE附带了那些实际写入AVR硬件寄存器的函数的实现。如果您希望看到屏幕上的虚拟LED亮起,那么您必须获得这些功能的替代实现。我不知道在哪里可以找到这样的工具,但是那些YouTube视频和它们的描述可能会有所帮助。试着在Arduino Stack Exchange网站上询问。这里有一个与你类似的问题: