eclipse C++ add reference undefined reference to method error
I'm new to C++ and ecplice and they are definitely giving my a hard time :)
I'm tring to write simple application that includes main project with refernces to other project i wrote the following file in shared project:
#ifndef MANAGEDLOG_H_
#define MANAGEDLOG_H_
#include string
#include iostream
#include fstream
using namespace std;
class ManagedLog
{
ofstream _fileStream;
public :
ManagedLog::ManagedLog(string path);
ManagedLog::~ManagedLog();
void ManagedLog::WriteInfoLog(string message,string stackTrace);
};
#endif /* MANAGEDLOG_H_ */
/*
* ManagedLog.cpp
*
* Created on: 18/06/2010
* Author: Eran
*/
#include "ManagedLog.h"
#include iostream
#include fstream
ManagedLog::ManagedLog(string path)
{
_path=path;
}
ManagedLog::~ManagedLog()
{
}
void ManagedLog:: WriteInfoLog(st开发者_运维问答ring message,string stackTrace)
{
ofstream myfile;
myfile.open("Eample.txt",ios::app);
myfile.close();
}
and run it in simple hellow world project:
#include "ManagedLog.h" #include using namespace std; int main() { ManagedLog * log = new ManagedLog("path"); log->WriteInfoLog("test","RunLog/Main"); cout
but I'm getting this error:
*** Build of configuration Debug for project RunLog **** **** Internal Builder is used for build **** g++ -ID:\EclipseWorkSpace\LogManager -O0 -g3 -Wall -c -fmessage-length=0 -osrc\RunLog.o ..\src\RunLog.cpp g++ -LD:\EclipseWorkSpace\LogManager\Release -oRunLog.exe src\RunLog.o src\RunLog.o: In function `main': D:/EclipseWorkSpace/RunLog/Debug/../src/RunLog.cpp:13: undefined reference to `ManagedLog::ManagedLog(std::string)' D:/EclipseWorkSpace/RunLog/Debug/../src/RunLog.cpp:14: undefined reference to `ManagedLog::WriteInfoLog(std::string, std::string)' collect2: ld returned 1 exit status Build error occurred, build is stopped Time consumed: 574 ms.
I added #include "ManagedLog.cpp" and the code work just fine but i guess this is not the right way to do it i read a lot about it but found no answer that i can impliment since i don't understad the term is the reanswers can anybody please help me with the right way to point to other project or dll in this environment?
thanks EranYou're not building ManagedLog.cpp
. Your compile sequence should look something like this example (simplified for clarity):
- compile
RunLog.c
intoRunLog.o
- compile
ManagedLog.c
intoManagedLog.o
- link
RunLog.o
andManagedLog.o
intoRunLog.exe
Steps 1 & 2 could be in the other order if you like.
精彩评论