저는 Microchip (Atmel)의 AVR-GCC 툴체인과 함께 Code :: Blocks를 사용하고 있습니다. .NET 용 프로그램을 컴파일하려고합니다 Atmega32
. 함수 __mulhi3
를 사용하는 프로그램을 컴파일하려고 하면 "Undefined reference to "가 나타납니다 sprintf()
. 이 기능이 없으면 오류가 발생하지 않습니다. Atmel Studio 또는 Linux의 Code :: Blocks에서 컴파일 된 동일한 프로그램이 정상적으로 작동합니다.
#include <avr/io.h>
#include <stdio.h>
int main(void)
{
char buf[20];
sprintf(buf, "Hello %d", 1);
while(1);
return 0;
}
Code :: Blocks의 기본 설정으로 인해 문제가 발생합니다 GNU GCC Compiler for AVR
.-에 대한 불필요한 포함 경로가 C:/WinAVR/avr/lib
있습니다. 당신은 가야합니다
설정 → 컴파일러 ... → AVR 용 GNU GCC 컴파일러 → 디렉토리 검색 → 링커
포함 경로의 명확한 목록. 목록이 비어 있지 않으면 링커는 잘못된 버전의 라이브러리에 대해 링크를 시도합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다