2015-12-20 19 views
2

У меня возникли проблемы с настройкой distcc для компиляции файлов на C++. Я сделал стандартный небольшой "Hello, World" program в C++ и пытаюсь получить distcc для его компиляции локально (до того, как я получу фантазию с большим проектом), но я получаю ошибки «неопределенной ссылки».Distcc с C++ undefined reference

Моя программа, под названием "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> 

Другая информация:

Эта программа компилирует просто отлично h 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) 
+0

Возможно, флаг -lstdC++ может помочь? – user3514538

ответ

3

Добавить -lstdc++ в командной строке компоновщика (то есть добавить libstdc++ в ваших связанных библиотек в явном виде, которые обычно g++ бы сделать для вас).

Пока вы на нем, попробуйте icecc. Я лично предпочитаю это.