Я не могу найти библиотеку математики
Я только что установил Ubuntu 12.04 LTS и у меня проблемы с подключением к математическим функциям (из). Я установил gcc и смог нормально скомпилировать исходный код. Тем не менее, пытаясь:
gcc -lm montecarlo_time.o parsercfile.o -o trmcfl
Выдает несколько ошибок вида:
montecarlo_time.o: In function `main:
/home/karthik/Research/MC/trmcfl/Dumps/whiteScaling/18-Sep-2012/montecarlo_time.c:75: undefined reference to asin`
Однако все эти файлы присутствуют (и видны для ldconfig -v -N)
/lib/i386-linux-gnu/libm.so.6
/lib64/libm.so.6
/usr/lib/i386-linux-gnu/libm.a
/usr/lib/i386-linux-gnu/libm.so
/usr/lib/i386-linux-gnu/xen/libm.a
/usr/lib64/libm.a
/usr/lib64/libm.so
Почему связь не работает?
2 ответа
Вы должны использовать -lm
в конце.
потому что неразрешенные символы находятся после gcc встреч montecarlo_time.o
и нет библиотеки или чего-либо еще, в чем она может найти это, может разрешить этот символ.
Я всегда печатал gcc -lm file.c
; До самой последней версии Ubuntu это работало. В интернете я вижу предположения, что это плохой стиль, но он работает. Кажется, теперь это изменилось.