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.cintoRunLog.o - compile
ManagedLog.cintoManagedLog.o - link
RunLog.oandManagedLog.ointoRunLog.exe
Steps 1 & 2 could be in the other order if you like.
加载中,请稍侯......
精彩评论