2016-07-11 22 views
3

Vivado에서 개발 한 HW 플랫폼을 테스트하기 위해 Vivado SDK에 간단한 프로젝트를 작성했습니다. 내 문제는 SDK가 sin() 함수을 인식하지 못한다는 것입니다. "math.h" 라이브러리를 오류없이 포함 시켰습니다. 프로그램은 sin() 함수가 포함 된 라이브러리를 인식합니다 (직접 검사했습니다).Vivado SDK는 #include "math.h"내의 함수를 인식하지 않습니다.

는이 오류를 얻을 :

C:\PATH...\Debug/../src/helloworld.c: undefined reference to `sin' collect2.exe: error: ld returned 1 exit status 

내가 here에서 답을 읽었습니다 내 문제를 해결하기 위해 쓸모가 없었습니다 그래서 너무 일반적이다. 라이브러리의 문제는 분명하지만 Vivado SDK에서이를 구체적으로 해결하는 방법이 명확하지 않습니다.

내가 함께 일하고 있어요 : OS : 윈도우 7

Vivado : 2016.1

Vivado SDK : 2016.1

모든 솔루션을 ???

+3

'libm'과 연결하십시오. –

+1

C 또는 C++? 하나를 선택. –

+0

[정의되지 않은 참조/확인되지 않은 외부 기호 오류 란 무엇이며 어떻게 수정합니까?] (http://stackoverflow.com/questions/12573816/what-is-an-undefined-reference-unresolved-external- symbol-error-and-do-do-i-fix) – Olaf

답변

5

자일링스 포럼에서 here을 설명 했으므로 암 v7 gcc liker에 "m"값을 추가 할 수 있습니다.

이 값이 프로젝트의 도구 상자에서 탐색을 올바르게 설정하려면 -> 속성 -> C/C++ 빌드 -> 설정 -> ARM v7의 GCC 링커 -> 도서관 -> 도서관 (-l)는 -> 추가 ... 여기에 값 "m"을 추가 할 수 있습니다. 이는 프로젝트에서 사용하려는 모든 수학 함수에 유효합니다.

enter image description here

당신은 결국 같은 것을 볼 수있다.

+1

일부 이전 버전에서도 제대로 작동합니다. 그리고 Vivado 2016.2 – Leos313

+1

많은 감사합니다. 그게 정확히 내가 찾고 있던 것이 었습니다. – Arturete

+0

나는 뭔가를 놓치고있는 것처럼 느낍니다. 내 프로젝트에는 컴파일러 : [Screenshot] (https://i.stack.imgur.com/XCKWQ.png)의 "arm v7 gcc 링커"설정이 포함되어 있지 않습니다. 웹팩 라이센스를 사용하고 있거나 다른 것을 추가해야 할 필요가 있을까요? –