2014-10-14 2 views
0

Эй, поэтому я пытаюсь использовать fmod, поскольку мне нужно взять модуль двух двухместных. Мой файл make делает следующее.fmod issue undefined reference

gcc -static -lm vm_main.c vm_options.c vm_menu.c vm_utility.c -o main 

так что тег -lm должен включать в себя заголовок math?

Я включил math.h в свои файлы.

#include "vm_menu.h" 
#include "vm_type.h" 
#include <math.h> 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#include <malloc.h> 

им немного запутался, почему это происходит ...:/

+1

Вам необходимо поместить библиотеки, которые вы связываете с * после * объектных/исходных файлов в командной строке. –

+0

Sweet, вы не знаете, почему эта ошибка продолжает возникать в eclipse, но только генерирует предупреждение в терминале? –

+0

Этап связывания должен приводить к ошибке в обоих случаях, которая должна приводить к тому, что 'make' должен немедленно выйти с ошибкой. –

ответ

0

так -lm тег должен включать заголовок по математике правильно?

Нет, он сообщает компоновщику ссылку на библиотеку libm, математическую библиотеку. Это библиотека, а не заголовок. Но the order of linker options is important, поэтому он должен появиться после файлов, которые его используют.