2017-04-23 1 views
0

내 프로젝트에 내 USART 라이브러리를 추가하려고했지만 제대로 인식되지 않도록 계속 추가하고 있습니다.ATMEL 자신의 라이브러리를 추가하는 스튜디오

내가 추가하고자하는 USART.c 및 USART.h 파일을 만들었습니다. 이것은 내가 뭘하려 : 나는이 두 파일을

나는이 프로젝트를 빌드 할

을 가지고 경로를 추가

1) 마우스 오른쪽 버튼으로 클릭 솔루션에/등록/툴체인/디렉토리 2), 그것은하지 않았다 작업. 나는 undefined reference to 'initUSART'이라는 메시지를 받는다.

프로젝트에 내 라이브러리를 어떻게 추가합니까?

enter image description here enter image description here

답변

2

질문의 스크린 샷은 당신이 당신의 라이브러리의 헤더 파일을 찾기 위해 컴파일러 구성을 보여준다. 하지만 컴파일러를 사용하여 라이브러리 함수 (예 : initUSART)를 컴파일하고 정적 라이브러리 파일 (lib 접두사 및 .a 확장자)을 만들어야합니다. 별도의 Atmel Studio 프로젝트가 필요하거나 IDE 외부에서 AVR GCC 툴체인을 사용하여 라이브러리를 컴파일하는 방법을 배우십시오. 그런 다음 라이브러리에 대한 링커의 검색 경로에있는 디렉토리에 해당 파일을 저장해야하며 적절한 -l 인수를 링커에 전달해야합니다. 예를 들어, 라이브러리가 libuart.a이라면, -luart을 링커에 전달해야합니다. Atmel Studio 프로젝트의 프로젝트 속성에는 구성해야 할 관련 설정이 있습니다.

GCC는 위에서 요약 한 정적 라이브러리를 컴파일, 작성 및 링크하는 표준 방법을 가지고 있습니다. GCC 정적 라이브러리의 튜토리얼에서 그 내용을 배울 수 있습니다. 그 지식을 AVR GCC toolchain에 적용하고, Atmel Studio에서 설정할 필요가있는 적절한 옵션을 찾아야합니다.

옆 : Atmel Studio는 라이브러리를 전혀 사용하지 않습니다. Arduino IDE는 라이브러리의 소스 파일을 올바른 위치에 놓고 컴파일하기 때문에 훨씬 더 잘 작동합니다. 수많은 Arduino 라이브러리가 있습니다. Arduino 플랫폼을 사용할 수 있다면 자신의 UART 드라이버를 작성할 필요가 없습니다.

간단한 대안 : C 라이브러리를 컴파일하고 링크하고 IDE를 구성하는 것에 대해 잘 모르는 경우 라이브러리 파일을 프로젝트에 복사하고 소스 파일로 추가하는 것이 훨씬 쉽습니다. 프로젝트의 다른 소스 파일과 마찬가지로 Atmel Studio에서 컴파일 할 수 있습니다.

관련 문제