2016-10-29 8 views
0

Недавно я пытаюсь использовать Apache Ant с g ++ 4.8 с -std=c++11.ld: "undefined ссылка на символ" sqrtf "ошибка с G ++ через Apache Ant

Если я пробовал этот код, он прошел.

#include <cmath> 
... 
sqrtf((float)100); 

Однако, если я типа:

#include <cmath> 
... 
sqrt((float)100); 

Компилятор г ++ приведет к ошибке:

/usr/bin/ld: test.o: undefined reference to symbol '[email protected]@GLIBC_2.2.5' 
//lib/x86_64-linux-gnu/libm.so.6: error adding symbols: DSO missing from command line 
collect2: error: ld returned 1 exit status 

Добавление -lm не помогает. Есть идеи?

Спасибо!

ответ

0

Я нашел решение. Кажется, что Apache Ant немного отличается от командной строки, используя g ++, которая должна добавить функцию -lm с аргументом ссылки следующим образом.

<linkerarg location="end" value="-lm"> 

Поскольку я не знаком с Ant, в первый раз, когда я написал аргумент без места, и Apache Ant дал мне ошибку. :(

0

Проблема не Apache Ant, в некоторых Linux дистрибутивов г ++ и GCC компиляторы требуют «-lm» связать CMATH LIB, который включается с помощью «math.h» в C и «CMATH» в C++

+0

Нет, не совсем в этом случае, потому что я могу использовать команду терминалом '' g ++ test.cpp -o test.o'' без каких-либо проблем. – KKyang

 Смежные вопросы

  • Нет связанных вопросов^_^