2016-07-11 28 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:Windows 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-シンボルエラー&ハウツー・アイ・フィックス) – 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 linker"の設定は含まれていません。これはWebPACKライ​​センスを使用しているか、何か別のものを追加する必要があるためですか? –

関連する問題