2017-10-03 2 views
2

저는 매우 Arduino에 새로워졌습니다. 어쩌면 제 질문은 어리 석 으리라 생각합니다.하지만 물어볼 필요가 있습니다! Arduino 프로젝트에 해당 파일이나 디렉토리가 없습니다.

나는 나의 nodeMcu 칩에 대한 mqtt 클라이언트를했고, 나는 GitHub의에서 원래 project 다운로드이 오류를

/Users/mikevorisis/Downloads/pubsubclient-master/examples/mqtt_esp8266/mqtt_esp8266.ino:27:26: fatal error: PubSubClient.h: No such file or directory #include

을 가지고 있고 나는 예/mqtt_esp8266에있는 예제를 컴파일 시도했지만 다시 내가 가진 같은 문제.

또한 PubSubClient.h를 같은 폴더에 넣으려고했으나 같은 문제가 다시 발생합니다.

아이디어가 있으십니까? 미리 감사드립니다.

답변

1

다운로드하여 프로젝트에 포함시킨 파일은 실제로 헤더 파일이 아닙니다. 아마도 github에서 그 내용을 복사하여 확장자 ".h"가있는 텍스트 파일로 저장 한 텍스트 문서에 붙여 넣었을 것입니다.

이제 확장명은 "filename.h.txt"입니다. 이름과 확장자는 "filename.h"일 필요가 있습니다. 다른 이름으로 저장을 사용하고 저장할 때 "모든 파일"을 선택하고 "filename.h"라고 이름을 지정하십시오. 파일 이름을 다시 입력하십시오. 그렇지 않으면 이미있는 "filename.h.txt"로 자동 채워질 수 있습니다 (보지 않아도!).

파일의 확장자가 올바른 경우 소스 코드 파일과 동일한 폴더에 넣으십시오. IDE에서 "다른 이름으로 저장"으로 이동하여 소스 파일이있는 디렉토리를 확인할 수 있습니다.


문제가 발생하면 정의가 누락되었습니다. 라이브러리를 헤더 파일 형식으로 사용할 때, 각 헤더 파일은 이어야하며, 보통 (이 경우 예)에는 반드시 .cpp 파일 (반드시 같은 이름이 아님)이 있어야합니다. 그 이유는 헤더 파일에 선언이 포함되어 있고 cpp 파일에 선언에 대한 정의가 포함되어 있기 때문입니다. 즉, 헤더 파일은 라이브러리에서 사용할 수있는 기능의 개요이며, cpp 파일은 실제로 그 기능을 수행합니다.


편집 : 당신은 또한 실행하려고하는 예는 #include <ESP8266WiFi.h>, 당신이 언급 GitHub의 저장소에 사용할 수없는 파일이 있습니다. 나는 이것이 다른 곳 (제조사, 다른 git 's 또는 아마도 Arduino IDE와 함께 제공되는)에서 얻을 수있는 WiFi 모듈 용 라이브러리라고 가정합니다. 즉, 헤더 및 (아마도) .cpp 파일을 원본 디렉터리에 추가해야합니다.

+0

안녕하세요, Tellus 님의 답변에 감사드립니다. 확장 프로그램과 .h (내가 말한대로 이름을 바꿨습니다)는 확인했지만 아무 것도 변경되지 않았습니다. 나는 또한 그것들을 같은 폴더에 넣는다. 실제로 github의 repo에서 예제를 실행하려고 했으므로 오류를 확인할 시간이 있다면 오류가 표시됩니다. –

+0

헤더의 .cpp 파일도 얻었습니까? 헤더 파일과 원본과 같은 디렉토리에 있습니까? – Tellus

+0

예. 나는 같은 폴더에 있습니다. espwifi가 트릭을 수행 할 때 같은 폴더에 넣었는지 확인합니다. –