Qt与Firmata链接 [英] Qt Linking with Firmata
问题描述
我在Windows 7上运行Qt SDK(C ++),Firmata和Arduino Softaware
我想知道为什么firmata.h不工作
#ifndef Firmata_Boards_h
#define Firmata_Boards_h
#include< inttypes.h>
#if defined(ARDUINO)&& ARDUINO> = 100
#includeArduino.h// for digitalRead,digitalWrite等
#else
#includeWProgram.h
#endif
问题是当我尝试使用Qt编译它说
D:\SGU\Semester 8\Program\OpenCVMultithreaded\Boards.h:9:错误:Arduino.h:没有这样的文件或目录
我们真的可以在Qt上使用firmata吗?因为在互联网我只找到Arduino软件使用公司,而不是Qt本身。
我试过:
INCLUDEPATH + =D:\opencv\build\include
INCLUDEPATH + =D:\opencv\build\include\opencv
INCLUDEPATH + =C:\Program Files(x86)\Arduino
INCLUDEPATH + =C:\Program Files(x86)\Arduino\hardware
INCLUDEPATH + = C:\ Program Files(x86)\Arduino\libraries
INCLUDEPATH + =C:\ Program Files(x86)\Arduino\libaries C:\Program Files(x86)\Arduino\hardware\arduino\cores\arduino\Arduino.h
但它不工作。
解决方案这不是一个链接问题,并且与您使用的特定库无关。您可能没有指定在哪里找到头文件或库文件。
在您的项目文件( .pro
)add
INCLUDEPATH + = PATH_TO_ARDUINNO_HEADERS
例如 PATH_TO_ARDUINNO_HEADERS
可以是 C:/ Arduino / include
br>
要指定库,您需要使用 LIBS 变量,例如
LIBS + = Lc:/ Arduino / lib-larduinnoshared
查看 qmake参考有关包含链接到外部项目的完整指南
编辑:
包含路径是要加上前缀以找到Arduino.h
。
所以如果文件位于
C:\Program Files(x86)\Arduino\ \arduino\cores\arduino\Arduino.h
您需要使用
INCLUDEPATH + =C:\Program Files(x86)\Arduino\hardware\arduino\cores\arduino
您发布的所有其他路径对此文件无效。您将仅包含目录 的包含头文件包含在包含路径中。
I am running on a Windows 7 with Qt SDK(C++), Firmata, and Arduino Softaware
I was wondering why the firmata.h is not working
#ifndef Firmata_Boards_h
#define Firmata_Boards_h
#include <inttypes.h>
#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h" // for digitalRead, digitalWrite, etc
#else
#include "WProgram.h"
#endif
the problem is when i try to compile using Qt it says
D:\SGU\Semester 8\Program\OpenCVMultithreaded\Boards.h:9: error: Arduino.h: No such file or directory
can we really use firmata on Qt? because in the internet I only found Arduino software using firmata, not on Qt itself.
I tried :
INCLUDEPATH += "D:\opencv\build\include"
INCLUDEPATH += "D:\opencv\build\include\opencv"
INCLUDEPATH += "C:\Program Files (x86)\Arduino"
INCLUDEPATH += "C:\Program Files (x86)\Arduino\hardware"
INCLUDEPATH += "C:\Program Files (x86)\Arduino\lib" I
INCLUDEPATH += "C:\Program Files (x86)\Arduino\libraries"
INCLUDEPATH += "C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino\Arduino.h"
But it doesnt work.
解决方案 This is not a linking issue but a compilation issue, and has nothing to do with the specific library you are using. You probably haven't specified where to find the header files nor the library files.
In your project file (.pro
) add
INCLUDEPATH += PATH_TO_ARDUINNO_HEADERS
for example PATH_TO_ARDUINNO_HEADERS
can be C:/Arduino/include
.
To specify libraries you need to use the LIBS variables, for example
LIBS += "-Lc:/Arduino/lib" -larduinnoshared
See the qmake reference for a complete guide on including\linking to external items
Edit:
The include path is what is going to be prefixed to find "Arduino.h"
.
So if the file is at
"C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino\Arduino.h"
you need to use
INCLUDEPATH += "C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino"
All the other paths you posted are invalid for this file. You put only directories containing header files in the includepath.
这篇关于Qt与Firmata链接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!