2012-04-28 3 views
0

У меня возникла проблема с использованием функций min() и max() в моем проекте C. Я импортировал math.h, но когда я скомпилировать файл я получаю следующее сообщение об ошибке (отображается подобная ошибка даже при использовании GCC вместо LLVM):Неопределенные символы для архитектуры x86_64 «_min»

Undefined symbols for architecture x86_64: 
    "_min", referenced from: 
     _main in main.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

Я думаю, что проблема в том, что там ISN» t 64-битная библиотека math.h ... или компилятор не может ее найти. Я использую Mac OS X 10.7. Как я могу исправить эту проблему?

ответ

1

Хотя я вижу «мин», определенный в libSystem.dylib, я не думаю, что для этого есть экспортированный заголовок. И я не могу понять, откуда «_min» входит, с точки зрения включенных файлов.

Обычно «мин» упоминается в макросе или с вашим собственными силами. Check out this very related question somebody else asked a while back.

Если вы посмотрите в math.h, есть некоторые функции типа «мин», но они предназначены для поплавков и парных. Если вы просто работаете с целыми или настраиваемыми типами, сверните свою собственную функцию.

+0

так что я должен написать? gcc main.c не работает ... Написание gcc -lm main.c ни ... –

+0

как вы создаете приложение или инструмент или что-то еще? это make-файл или просто компиляция из командной строки? –

+0

Командная строка или через Xcode. У меня нет файла makefile –