У меня возникли проблемы с настройкой distcc для компиляции файлов C ++. Я сделал стандартный маленький Программа «Привет, мир» в C ++, и я пытаюсь получить distcc, чтобы скомпилировать его локально (прежде чем я увлекся большим проектом), но я получаю ошибки «неопределенная ссылка».
Моя программа под названием «hello.cpp»:
#include <iostream>
int main(){
std::cout << "Hello World in c++" << std::endl;
return 0;
}
Моя команда:
$ distcc hello.cpp
Терминальный выход:
/tmp/cc5rZwhV.o: In function `main': <br>
hello.cpp:(.text+0xa): undefined reference to `std::cout' <br>
hello.cpp:(.text+0xf): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)' <br>
hello.cpp:(.text+0x14): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)' <br>
hello.cpp:(.text+0x1c): undefined reference to `std::ostream::operator<<(std::ostream& (*)(std::ostream&))' <br>
/tmp/cc5rZwhV.o: In function `__static_initialization_and_destruction_0(int, int)': <br>
hello.cpp:(.text+0x4a): undefined reference to `std::ios_base::Init::Init()' <br>
hello.cpp:(.text+0x59): undefined reference to `std::ios_base::Init::~Init()' <br>
collect2: error: ld returned 1 exit status <br>
distcc[21053] ERROR: compile hello.cpp on localhost failed <br>
Дополнительная информация:
Эта программа прекрасно компилируется с g ++ и C ++. Аналогичная программа написана на C с использованием printf
работает с distcc.
Выход из $ distcc --version
:
distcc 3.2rc1 x86_64-unknown-linux-gnu
(protocols 1, 2 and 3) (default port 3632)
built Jul 7 2014 13:18:34
....(copyright stuff)
добавлять -lstdc++
в командной строке вашего компоновщика (то есть добавить libstdc++
к вашим связанным библиотекам явно, что обычно g++
сделал бы для вас).
Пока вы на это, попробуйте icecc
также. Я лично предпочитаю это.
Других решений пока нет …