`.ino` 파일이 같은 이름의 폴더에 있어야하는 이유는 무엇입니까?


12

매우 복잡한 프로젝트를 구성하려고하는데 실제 코드를 모두 src(source) 라는 폴더에 넣고 싶지만 주 .ino파일 을 그대로 유지하고 싶습니다 main.ino( src). 그런 다음 코드를 열려고하면 IDE는 main.ino라는 폴더에 있어야 한다고 말합니다 main.

왜 이런거야?

오류 메시지를 완전히 이해했지만 Arduino의 파일 이름이 왜 그렇게되어야합니까? 그것을 바꿀 수있는 방법이 있습니까?

답변:


6

AFAIK는 Arduino IDE에 내장 된 기발한 기능입니다. 내가 생각할 수있는 가장 좋은 해결 방법은 다음과 같은 파일 구조입니다.

ArduinoWorkspace --- /myproj/ ----+ /src/ --------+ myproj.cpp
                                  + myproj.ino    + sensor.h
                                                  + sensor.cpp
                                                  + (more files)

여기서 myproj.cpp는 #includemain.cpp입니다. 이렇게하면 더 일반적인 환경에서도 작동하도록 프로젝트 파일을 "깨끗한"상태로 두어야합니다.

최신 정보:

귀하의 질문에서 "main"이라는 이름을 빌 렸지만 "main"은 예약 된 이름입니다. 특히 모든 C 또는 C ++ 프로그램에는 시스템에서 제공하는 최상위 코드로 main.c 또는 main.cpp가 있습니다. 당신은 하나를 제공하지 않습니다. 그래서 나는 그것을 폴더 이름과 프로젝트 이름으로 사용하지 말고 자유롭게 시도해보십시오. 다이어그램을 업데이트했습니다. 필요한 것은 동일한 이름의 프로젝트 폴더와 .ino 파일입니다. .ino 파일은

#include <src/anything-else-you-like>

예를 들어 최상위 코드 파일과 같이 다른 모든 것을 가져옵니다. 컴파일러가 자체적으로 파악하지 못하면 다른 파일이 #include있는 src폴더 의 각 파일에 .ino가 필요할 수 있습니다 .

BTW, 최상위 파일에 main.cpp라는 이름을 사용하는 경우 setup () 및 loop () 함수 (및 사용하는 경우 직렬 이벤트 함수)를 호출해야합니다. 아마도 이름을 'main'으로 남겨두고 시스템이 기본적으로 모든 Arduino 프로그램과 동일한 메인을 제공하고 setup () 및 loop ()로 시작하는 전형적인 Arduino 방식으로 프로젝트 코드를 작성하도록하는 것이 가장 좋습니다.


myproj.cpp당신은 의미 myproj.ino합니까? 나는 어디에 있는지 알지 못하기 때문에 myproj.cpp!
Dat Ha

자, 작은 문제입니다.이 작업을 수행하면 sensor.cpp에 포함 된 일부 기본 Arduino 함수 (예 : map () 및 analogRead ())가 컴파일러에서 인식되지 않습니다.
Dat Ha

또는 Windows 상자에서 작업하는 경우 junction 명령을 사용하고 올바른 이름의 디렉토리를 더 나은 이름의 디렉토리에 "링크"하십시오. 또는 Linux 박스에서 작업하는 경우 symbolic link 명령을 사용하여 동일한 작업을 수행하십시오.
st2000

(내 업데이트 참조-.ino 파일은 다른 파일을 각각 포함해야 할 수도 있습니다).
JRobert

3

여러 .INO파일 로 구성된 프로젝트 가있는 경우 IDE는 "주"파일을 어떻게 알 수 있습니까? 컴파일하는 동안 IDE는 모든 .INO파일을 하나의 모 놀리 식 파일로 연결 합니다. 이 작업은 "주"항목으로 시작한 다음 다른 항목을 사전 순으로 끝에 추가합니다.

"메인" .INO파일 에 포함해야하는 포함 및 글로벌 변수 가 완료된 프로그램의 시작에 있도록이 방식으로 수행됩니다 .

이를 위해 IDE는 어떤 파일이 "메인"파일인지 알아야합니다. 그리고 그것이 작동하는 방식은 스케치가있는 폴더와 같은 이름의 것을 찾는 것입니다.

UECIDE 에서는 한 단계 더 나아가 전체 폴더를 복합 문서로 변환 하므로 더 이상 폴더를 입력 .INO하고 스케치를 열기 위해 파일을 열 필요가 없습니다. 실제 폴더 자체는 전체 스케치 프로젝트입니다. 다시이 종류의 폴더는 폴더 .INO와 동일한 이름 을 가진 파일이 파일 내에 있는 것으로 식별됩니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.