2016-11-02 6 views
-3

Итак, я бегу код smulation планирования процессора, но я наткнулся на несколько ошибок во время компиляцииЧто такое /var/tmp//ccz0ct2G.o?

Undefined      first referenced 
symbol        in file 
std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /var/tmp//ccz0ct2G.o 
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> >&)) /var/tmp//ccz0ct2G.o 
std::cout       /var/tmp//ccz0ct2G.o 
std::basic_ofstream<char, std::char_traits<char> >::close() /var/tmp//ccz0ct2G.o 
std::ios_base::Init::~Init()  /var/tmp//ccz0ct2G.o 
std::ios_base::Init::Init()   /var/tmp//ccz0ct2G.o 
std::basic_ios<char, std::char_traits<char> >::operator!() const /var/tmp//ccz0ct2G.o 
__gxx_personality_v0    /var/tmp//ccz0ct2G.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*) /var/tmp//ccz0ct2G.o 
std::basic_ifstream<char, std::char_traits<char> >::basic_ifstream(char const*, std::_Ios_Openmode) /var/tmp//ccz0ct2G.o 
std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&) /var/tmp//ccz0ct2G.o 
ld: fatal: Symbol referencing errors. No output written to a.out 
collect2: ld returned 1 exit status 

Я не понимаю, почему я получаю эти ошибки и что /var/tmp//ccz0ct2G.o?

Почти все ошибки имеют это.

+1

Пожалуйста, включите полное сообщение об ошибке в свой вопрос. –

+0

Это, вероятно, связано с программным обеспечением для моделирования. Я имею в виду, он генерирует исходные файлы в папке/var/tmp? – drescherjm

+0

Я использую Putty (Unix) для компиляции, и у меня нет доступа к/var/tmp, чтобы проверить – SPLASH

ответ

1

Я не понимаю, почему я получаю эти ошибки

Ваша программа пытается использовать то, что это часть внешней библиотеки или другого объектного файла, но вы не передаете, что линкером.

а что такое /var/tmp//ccz0ct2G.o?

Временной файл объекта, содержащий промежуточные данные, которые будут использоваться на последующих этапах процесса компиляции.

Позвольте мне угадать: Вы пытались собрать с командой, которая пошла что-то вроде

g++ somesource.cc 

Вы видите, компиляция состоит из нескольких этапов:

1. compiling the individual source files (`*.c`, `*.cc` and so on) into *object files* (`*.o`). 
2. linking the produced object files together into the actual program or library 

При вызове компилятора, как вы делали , это сокращение, которое выполняет обе операции с одного вызова. Но для простоты, а также потому, что объектные файлы могут расти довольно большими, и это может создать проблему, чтобы сохранить их все в памяти, результат компиляции исходного файла помещается во временный файл объекта. Это то, что у вас есть.

+0

Как только вы сказали библиотеку, я ударил себя. Я вернулся и проверил библиотеки, которые обнаружили, что мне не хватает «conio.h». Он не разрешил все ошибки, но удалил некоторые из них. Спасибо, приятель, я попытаюсь решить другие ошибки, прежде чем отправлять другой вопрос XD – SPLASH

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