CodeRunner— не может скомпилировать несколько исходных программ на C ++

Я очень новичок в программировании на С ++ и программировании в целом. Недавно мы добавляли заголовочные файлы и другие исходные файлы (реализацию) в наши программы в классе. Я пытался написать простейшую программу, чтобы убедиться, что я понимаю основы включения нескольких файлов в одну программу, но они не скомпилируются, что приводит к ошибкам компоновщика.

а именно:

Undefined symbols for architecture x86_64:
"FooBar::printSomething()", referenced from:
_main in main-d52d70.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Когда я компилирую в терминале «g ++ main.cpp creation.cpp», все работает просто отлично.

мой код:

main.cpp

#include "header.h"
int main()
{
FooBar object;
object.printSomething();
return 0;
}

header.h

#ifndef _Header_h_
#define _Header_h_

#include <iostream>

using namespace std;

class FooBar{
public:
void printSomething();

private:
string helloWorld;
};

#endif

implementation.cpp

#include "header.h"
void FooBar::printSomething(){
helloWorld = "Hello World!\n";
cout << helloWorld;
}

Я люблю CodeRunner, но это действительно расстраивает меня.

Спасибо!

0

Решение

Для любого с похожим вопросом Я нашел решение:

Я допустил ошибку в создании файла заголовка и файла реализации класса в файле заголовка, различного по имени.

header.h должен быть назван foobar.h

application.cpp должен быть назван foobar.cpp

когда я изменил имена файлов на foobar.h и foobar.cpp, программа скомпилировалась и прекрасно работала в CodeRunner.

Мой профессор сказал мне, что заголовочный файл для класса и его файл реализации должны иметь одно и то же имя с разными типами файлов, а именно, x.cpp и x.h.

0

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

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

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