私は小さな問題があり、この機能をテストするためにすべてを試しました。私は "mutual_info.c"と呼ばれるCファイルを書く必要があり、数学的な関数が必要です。私は...ライブラリを含み、メイクファイルでそれをリンクされたが、それはまだ私に「ログインする未定義の参照」を与えてきた私は、次のようになり含まれています(私はUbuntuでEclipseを使用しています)math.hファイルとのリンク
#include <stdio.h>
#include <stdlib.h>
#include "sample.h"
#include "graph_or.h"
#include <math.h>
との私の
all:
gcc -g amostra.c sample.h -o amostra.o
gcc -g graph_or.c graph_or.h -o graph_or.o
gcc -g graph_w.c graph_W.h -o graph_W.o
gcc -g mutual_info.c -o mutual_info.o -lm
clean:
rm *.o
私は何が起こっているのか全く見当がつかない、私も「すべて」コマンドの前にLDFLAGSを定義しようとしていると、このようにそれを置く:メイクファイルはこのようになります
LDFLAGS= -lm
all:
gcc -g amostra.c sample.h -o amostra.o
gcc -g graph_or.c graph_or.h -o graph_or.o
gcc -g graph_w.c graph_W.h -o graph_W.o
gcc -g mutual_info.c -o mutual_info.o -lm
clean:
rm *.o
しかし、それはまだ 動作しません!誰か、私はこれで助けが必要です!ありがとう!
このメイクファイルは意味をなさない。 .oファイルを生成するには、 '-c'フラグが必要です。リンカオプションを指定する必要はありません(つまり、' -lm'は必要ありません)。すべての.oファイルをリンクするには、別個のGCC呼び出しが必要です。また、.hファイルを指定する必要もありません。 –
ごめんなさい@OliCharlesworthさんがあなたの言っていることを理解できませんでしたか、より具体的なものか、メイクファイルのコードを教えてください。私はあなたがそれを使いたいと思うたびに数学ライブラリをリンクしなければならないと思った!ありがとう –
コンパイルの典型的なパターンは 'gcc -c -o foo.o foo.c、gcc -c -o bar.o bar.o、gcc -o myApp foo.o bar.o -lm'のようなものです。 –