Я беру класс, который требует использования G CC в качестве компилятора. Я пытаюсь убедиться, что CLion использует G CC, но независимо от того, что я делаю, я получаю следующую ошибку при попытке запустить мой файл:
Scanning dependencies of target Sandbox
[ 50%] Building CXX object CMakeFiles/Sandbox.dir/main.cpp.o
[100%] Linking CXX executable Sandbox
Undefined symbols for architecture x86_64:
"std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))", referenced from:
printSquare(double) in main.cpp.o
"std::basic_ostream<char, std::char_traits<char> >::operator<<(double)", referenced from:
printSquare(double) in main.cpp.o
"std::ios_base::Init::Init()", referenced from:
__static_initialization_and_destruction_0(int, int) in main.cpp.o
"std::ios_base::Init::~Init()", referenced from:
__static_initialization_and_destruction_0(int, int) in main.cpp.o
"std::cout", referenced from:
printSquare(double) in main.cpp.o
"std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)", referenced from:
printSquare(double) in main.cpp.o
"std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)", referenced from:
printSquare(double) in main.cpp.o
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
make[3]: *** [Sandbox] Error 1
make[2]: *** [CMakeFiles/Sandbox.dir/all] Error 2
make[1]: *** [CMakeFiles/Sandbox.dir/rule] Error 2
make: *** [Sandbox] Error 2
Вот мой очень простой main. * Файл 1016 *, который я использовал для проверки G CC:
#include <iostream>
using namespace std;
double square(double x) {
return x * x;
}
void printSquare(double x) {
cout << "The square of " << x << " is " << square(x) << endl;
}
int main() {
printSquare(10.9);
}
, а также мой файл CMakeLists.txt:
project(Sandbox)
set(CMAKE_CXX_STANDARD 14)
add_executable(Sandbox main.cpp)
В настройках в разделе «Сборка, выполнение, развертывание» | Наборы инструментов | Компилятор C ++, путь: /usr/local/bin/gcc-9
.
Я пытался использовать Homebrew обновление и переустановить G CC, и я не смог найти другие вопросы на сайте, у которых была похожая проблема. Я работаю на MacOS Catalina 10.15.2. Спасибо за помощь.