작은 문제가 있습니다.이 함수를 테스트하기 위해 모든 것을 시도했습니다. 제발 도와주세요. "mutual_info.c"라는 C 파일을 작성해야하며 수학 함수가 필요합니다. 내가 ... 라이브러리를 포함 메이크 파일에 링크 된,하지만 여전히 나에게 "로그 정의되지 않은 참조"를 제공 한 내는 다음과 같이 포함되어 있습니다 (I 우분투에 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'입니다. –