Arduino IDE에서 collect2.exe : error : ld returned 1 exit status가 나왔을 경우의 대처법
2527 단어 ArduinoM5stackArduinoIDE
소개
최근 유행의 M5Stack의 파도를 타고 싶어, 너무 사용한 적이 없었던 Arduino IDE를 만지고 빠진 점 중 하나를 공유합니다.
해결하면 큰 일 없는, 오히려 초초보체로 부끄러운 정도였을지도 모릅니다만, 의외로 모르면 무슨 일이 일어나고 있는지 모른다? 라고 생각하고 있었으므로 기사로 해 보았습니다.
어떤 오류가 발생했는지
결론에 가까운 이야기에서 씁니다.
내가 Arduino IDE에서 나온 오류는collect2.exe: error: ld returned 1 exit status
입니다.
원인
원인은 .ino 파일에 라이브러리와 같은 파일이 놓여 있었다는 것이었습니다.
라이브러리는 설정에 따라 다를 수 있지만,C:\Users\UserName\Documents\Arduino\libraries
에 배치됩니다.
여기에 있는 .ccp, .h와 같은 파일을 스케치와 같은 디렉토리에 두면 나쁜 짓을 합니다.
조심하는 점
스케치에 넣을 파일 및 라이브러리의 파일 확인
원인으로 쓴 대로, 라이브러리에 있는 것은 스케치(.ino)의 디렉토리에는 둘 필요가 없기 때문에 삭제합니다.
헤더 피알 참조
라이브러리의 헤더를 참조하려면 <>로 묶습니다.
#include <hoge.h>
스케치(.ino) 디렉토리 다음 파일은 참조하는 경우 ""로 묶습니다.
#include "piyo.h"
빌드 파일 삭제
이것이 상당히 빠진 점이지만, 곧 이것은 파일 구성이 나쁘다는 것을 깨닫고, 스케치 디렉토리의 파일을 삭제했습니다만, 개선되지 않고 혼란했습니다.
이것은 일단 만든 빌드된 파일이 남아 있었기 때문인 것 같습니다.
내 경우에는 사전에 IDE 파일/환경 설정C:\Users\UserName\AppData\Local\Arduino15\preferences.txt
편집,build.path=C:\Users\UserName\AppData\Local\Temp\arduino_build
를 추가했습니다.
이 중build.path=C:\Users\UserName\AppData\Local\Temp\arduino_build\sketch
에 이전 파일이 남아 있으면 빌드 오류가 개선되지 않을 수 있습니다.
그래서 그 경우는 sketch 이하의 파일을 삭제하는 것이 좋다.
Arduino IDE는 빌드 클린적인 것은 존재하지 않습니까?
컴파일 로그를 모두 표시
왜 실패했는지 알아내기 위해 이전과 동일한 환경 설정에서 コンパイラの警告
를 全て
로 선택하십시오.
그러면 상세한 컴파일 에러가 표시되므로 원인을 추측할 수 있습니다.
특히 무엇으로 오류가 발생했는지
내가 할 일은 M5Stack에서 Avatar + AquesTalkTTS를 사용하여 말하는 것입니다.
Example은 라이브러리 매니저에서 M5Stack
에서 검색하면 나오는 M5Stack_Avatar
를 Install 끝난 상황입니다.
스케치 예제의 M5Stack_Avator/talk에서는 말하는 것은 확인되어 있었으므로, 다음에 거의 같은 내용의 코드로 ino파일을 작성해, AquesTalkTTS.ccp/.h를 ino와 같은 디렉토리에 배치해 빌드했습니다.
AquesTalkTTS.ccp/.h는 이전에 Example을 실행할 때 라이브러리에 배치했기 때문에 이 문제가 발생했습니다.
참고 사이트
여기에 Arduino/ESP32계의 주의점이 다수 나와 있으므로 참고가 됩니다.
ESP32 (ESP-WROOM-32, M5Stack) 자체 문제 해결 요약
Reference
이 문제에 관하여(Arduino IDE에서 collect2.exe : error : ld returned 1 exit status가 나왔을 경우의 대처법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/KatsuShun89/items/ec342678c5c802ccf52c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
결론에 가까운 이야기에서 씁니다.
내가 Arduino IDE에서 나온 오류는
collect2.exe: error: ld returned 1 exit status
입니다.원인
원인은 .ino 파일에 라이브러리와 같은 파일이 놓여 있었다는 것이었습니다.
라이브러리는 설정에 따라 다를 수 있지만,C:\Users\UserName\Documents\Arduino\libraries
에 배치됩니다.
여기에 있는 .ccp, .h와 같은 파일을 스케치와 같은 디렉토리에 두면 나쁜 짓을 합니다.
조심하는 점
스케치에 넣을 파일 및 라이브러리의 파일 확인
원인으로 쓴 대로, 라이브러리에 있는 것은 스케치(.ino)의 디렉토리에는 둘 필요가 없기 때문에 삭제합니다.
헤더 피알 참조
라이브러리의 헤더를 참조하려면 <>로 묶습니다.
#include <hoge.h>
스케치(.ino) 디렉토리 다음 파일은 참조하는 경우 ""로 묶습니다.
#include "piyo.h"
빌드 파일 삭제
이것이 상당히 빠진 점이지만, 곧 이것은 파일 구성이 나쁘다는 것을 깨닫고, 스케치 디렉토리의 파일을 삭제했습니다만, 개선되지 않고 혼란했습니다.
이것은 일단 만든 빌드된 파일이 남아 있었기 때문인 것 같습니다.
내 경우에는 사전에 IDE 파일/환경 설정C:\Users\UserName\AppData\Local\Arduino15\preferences.txt
편집,build.path=C:\Users\UserName\AppData\Local\Temp\arduino_build
를 추가했습니다.
이 중build.path=C:\Users\UserName\AppData\Local\Temp\arduino_build\sketch
에 이전 파일이 남아 있으면 빌드 오류가 개선되지 않을 수 있습니다.
그래서 그 경우는 sketch 이하의 파일을 삭제하는 것이 좋다.
Arduino IDE는 빌드 클린적인 것은 존재하지 않습니까?
컴파일 로그를 모두 표시
왜 실패했는지 알아내기 위해 이전과 동일한 환경 설정에서 コンパイラの警告
를 全て
로 선택하십시오.
그러면 상세한 컴파일 에러가 표시되므로 원인을 추측할 수 있습니다.
특히 무엇으로 오류가 발생했는지
내가 할 일은 M5Stack에서 Avatar + AquesTalkTTS를 사용하여 말하는 것입니다.
Example은 라이브러리 매니저에서 M5Stack
에서 검색하면 나오는 M5Stack_Avatar
를 Install 끝난 상황입니다.
스케치 예제의 M5Stack_Avator/talk에서는 말하는 것은 확인되어 있었으므로, 다음에 거의 같은 내용의 코드로 ino파일을 작성해, AquesTalkTTS.ccp/.h를 ino와 같은 디렉토리에 배치해 빌드했습니다.
AquesTalkTTS.ccp/.h는 이전에 Example을 실행할 때 라이브러리에 배치했기 때문에 이 문제가 발생했습니다.
참고 사이트
여기에 Arduino/ESP32계의 주의점이 다수 나와 있으므로 참고가 됩니다.
ESP32 (ESP-WROOM-32, M5Stack) 자체 문제 해결 요약
Reference
이 문제에 관하여(Arduino IDE에서 collect2.exe : error : ld returned 1 exit status가 나왔을 경우의 대처법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/KatsuShun89/items/ec342678c5c802ccf52c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
스케치에 넣을 파일 및 라이브러리의 파일 확인
원인으로 쓴 대로, 라이브러리에 있는 것은 스케치(.ino)의 디렉토리에는 둘 필요가 없기 때문에 삭제합니다.
헤더 피알 참조
라이브러리의 헤더를 참조하려면 <>로 묶습니다.
#include <hoge.h>
스케치(.ino) 디렉토리 다음 파일은 참조하는 경우 ""로 묶습니다.
#include "piyo.h"
빌드 파일 삭제
이것이 상당히 빠진 점이지만, 곧 이것은 파일 구성이 나쁘다는 것을 깨닫고, 스케치 디렉토리의 파일을 삭제했습니다만, 개선되지 않고 혼란했습니다.
이것은 일단 만든 빌드된 파일이 남아 있었기 때문인 것 같습니다.
내 경우에는 사전에 IDE 파일/환경 설정
C:\Users\UserName\AppData\Local\Arduino15\preferences.txt
편집,build.path=C:\Users\UserName\AppData\Local\Temp\arduino_build
를 추가했습니다.이 중
build.path=C:\Users\UserName\AppData\Local\Temp\arduino_build\sketch
에 이전 파일이 남아 있으면 빌드 오류가 개선되지 않을 수 있습니다.그래서 그 경우는 sketch 이하의 파일을 삭제하는 것이 좋다.
Arduino IDE는 빌드 클린적인 것은 존재하지 않습니까?
컴파일 로그를 모두 표시
왜 실패했는지 알아내기 위해 이전과 동일한 환경 설정에서
コンパイラの警告
를 全て
로 선택하십시오.그러면 상세한 컴파일 에러가 표시되므로 원인을 추측할 수 있습니다.
특히 무엇으로 오류가 발생했는지
내가 할 일은 M5Stack에서 Avatar + AquesTalkTTS를 사용하여 말하는 것입니다.
Example은 라이브러리 매니저에서 M5Stack
에서 검색하면 나오는 M5Stack_Avatar
를 Install 끝난 상황입니다.
스케치 예제의 M5Stack_Avator/talk에서는 말하는 것은 확인되어 있었으므로, 다음에 거의 같은 내용의 코드로 ino파일을 작성해, AquesTalkTTS.ccp/.h를 ino와 같은 디렉토리에 배치해 빌드했습니다.
AquesTalkTTS.ccp/.h는 이전에 Example을 실행할 때 라이브러리에 배치했기 때문에 이 문제가 발생했습니다.
참고 사이트
여기에 Arduino/ESP32계의 주의점이 다수 나와 있으므로 참고가 됩니다.
ESP32 (ESP-WROOM-32, M5Stack) 자체 문제 해결 요약
Reference
이 문제에 관하여(Arduino IDE에서 collect2.exe : error : ld returned 1 exit status가 나왔을 경우의 대처법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/KatsuShun89/items/ec342678c5c802ccf52c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
여기에 Arduino/ESP32계의 주의점이 다수 나와 있으므로 참고가 됩니다.
ESP32 (ESP-WROOM-32, M5Stack) 자체 문제 해결 요약
Reference
이 문제에 관하여(Arduino IDE에서 collect2.exe : error : ld returned 1 exit status가 나왔을 경우의 대처법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/KatsuShun89/items/ec342678c5c802ccf52c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)