конструкция компилятора — Компиляция нескольких файлов в С ++ Solaris

У меня есть три простых файла:

Заголовочный файл для класса

> cat myhh.hh
#include<iostream>

class helloworld
{
string str;
public:
void start(string &);
void stop(string &);
};

соответствующий ему файл cc

> cat myhh.cc
#include<iostream>
#include "myhh.hh"using namespace std;

void helloworld::start(string &str1)
{
cout<< ""function started"<<endl;
}
void helloworld::stop(string &str2)
{
cout<< ""function stopped"<<endl;
}

Теперь основная функция:

> cat mymain.cc
#include<iostream>

#include "myhh.hh"
int main()
{

helloworld obj;
obj.start(std::string("XXXX"));
obj.stop(std::string("XXXX"));}
>

Моим основным намерением является создание файла с этими 3 файлами, и когда я его выполню, он должен напечатать:

function started
function stopped

Я пытался скомпилировать, но я получаю ниже ошибок.

> CC mymain.cc
Undefined                       first referenced
symbol                             in file
void helloworld::stop(std::basic_string<char,std::char_traits<char>,std::allocator<char> >&) mymain.o
void helloworld::start(std::basic_string<char,std::char_traits<char>,std::allocator<char> >&) mymain.o
ld: fatal: Symbol referencing errors. No output written to a.out
>

Я уверен, что я не понимаю основы. Но я просто пытаюсь изучить вещи процесса компиляции.
Кто-нибудь может помочь?

0

Решение

Вам также необходимо скомпилировать myhh.cc и связать сгенерированный объект.

$CC -c myhh.cc -o myhh.o
$CC -o mymain mymain.cc myhh.o
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]