ошибка: ':: acos' не был объявлен с использованием :: acos; - PullRequest
0 голосов
/ 14 сентября 2018

Я столкнулся с этой ошибкой при попытке построить проект cpp с использованием CLion.Вот сообщение об ошибке:

/usr/include/c++/5/cmath:102:11: error: ‘::acos’ has not been declared
   using ::acos;
           ^
/usr/include/c++/5/cmath:121:11: error: ‘::asin’ has not been declared
   using ::asin;
           ^
/usr/include/c++/5/cmath:140:11: error: ‘::atan’ has not been declared
   using ::atan;
           ^
/usr/include/c++/5/cmath:159:11: error: ‘::atan2’ has not been declared
   using ::atan2;
           ^
/usr/include/c++/5/cmath:180:11: error: ‘::ceil’ has not been declared
   using ::ceil;
           ^
/usr/include/c++/5/cmath:199:11: error: ‘::cos’ has not been declared
   using ::cos;

...

В проекте есть специальный заголовочный файл с именем ~/someproject/src/math.h.Изменение имени файла ~/someproject/src/math.h на неконфликтующее имя, такое как math1.h (и соответствующее обновление его ссылок) устраняет ошибку.

Кто-нибудь знает другое решение, которое не требует смены имени?

1 Ответ

0 голосов
/ 14 сентября 2018

Есть несколько решений:

  • Использование относительного включает, например, #include "../src/math.h
  • Используйте компонент исправления, например, #include <src/math.h>
  • Исправьте ваш путь включения, который, по-видимому, содержит что-то вроде -I/usr/include, так что стандартные каталоги включения включаются перед вашими пользовательскими каталогами.

Ссылка: https://gcc.gnu.org/onlinedocs/cpp/Search-Path.html

...