Qt与Firmata链接 [英] Qt Linking with Firmata

查看:328
本文介绍了Qt与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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆