Я не могу получить этот простой кусок кода для компиляции без включения файла TestClass.cpp явно в файл main.cpp. Что я делаю не так? Заранее спасибо!C++ Undefined Reference (Even with Include)
Вот код:
TestClass.h
#ifndef TESTCLASS_H_
#define TESTCLASS_H_
class TestClass
{
public:
static int foo();
};
#endif
TestClass.cpp
#include "TestClass.h"
int TestClass::foo() { return 42; }
main.cpp
#include <iostream>
#include "TestClass.h"
using namespace std;
int main()
{
cout << TestClass::foo() << endl;
return 0;
}
Здесь ошибка:
g++ main.cpp -o main.app
/tmp/ccCjOhpy.o: In function `main':
main.cpp:(.text+0x18e): undefined reference to `TestClass::foo()'
collect2: ld returned 1 exit status
Как странно! Раньше я никогда не сталкивался с этой проблемой. Я новичок в C++, и я думаю, что у меня всегда была IDE, чтобы сделать это для меня. Неудивительно! Благодаря! – 2009-03-26 20:31:12
@Scott - Вот почему вы должны потратить некоторое время в командной строке;). Он ясно показывает, что IDE скрывается от вас ... –
Я должен не согласиться с переименованием файлов. Как бы то ни было, файлы называются после того, что они содержат, в соответствии с случаем содержимого (функция «main» и класс «TestCase»). – camh