「複数の定義」というエラーが発生しました。3つのファイル、つまり、currency.h、currency.cpp、main.cppを取得しました。
CurrencyConverterクラスのcurrencyConverter.hで
using namespace std;
class currencyConverter
{
string result;
stringstream ss;
size_t found,found2;
public:
void getInbetween(string,string);
};
#endif /* CURRENCYCONVERTER_H */
それからcurrencyConverter.cppで私はしました
#include "currencyConverter.h"
void currencyConverter::getInbetween(string selection,string str2,string str3,string sdata)
{
buffer[result.length()] = '\0'; //insert '\0'
char * pch;
pch = strtok (buffer," ");
}
void currencyConverter::webparser(const string siteurl,const string filename)
{
ss << "lynx -dump '" << siteurl << "' > " << filename;
}
string currencyConverter::userOption()
{
//some code
return selection;
}
main2.cppで
#include<iostream>
#include"currencyConverter.cpp"
using namespace std;
int main() {
currencyConverter c;
string exitstr;
if(selection!="6")
{
c.webparser(parsePage,"file.txt");
//now perform searchstring
c.searchString(selection,"file.txt");
}
}while (1);
return 0;
}
これは私のメイクファイルです
# ExampleTests Project
SRCS = main2.cpp
HDRS =
PROJ = main
CC = g++
OBJS = $(SRCS:.cpp=.o)
APP = $(PROJ).exe
CFLAGS = -c -g -Wall -I/opt/local/include
ifeq (,$(findstring CYGWIN,$(shell uname)))
LIBS = -lcppunit -ldl
all: $(APP)
$(APP): $(OBJS)
$(CC) $(LDFLAGS) $(OBJS) -o $(APP) $(LIBS)
clean:
rm -f *.o $(APP)
しかし、私はコンパイラでこのエラーを受け取ります
この修正を取得する方法..私はそれを2回使用しませんでした。自分のcurrencyConverter.cppの一部を関数webparserで貼り付けましたが、main2.cppで関数を呼び出す方法にエラーがありますか?
rm -f *.o main.exe
CLEAN SUCCESSFUL (total time: 86ms)
g++ -c -o main2.o main2.cpp
td :: char_traits、std :: allocator>)':currencyConverter.cpp:(。text+ 0xcec): `currencyConverter :: webparser(std :: basic_string、std :: allocator>、std :: basic_string、stdの複数の定義:: allocator>)'main2.o:main2.cpp:(。text + 0xcec):ここで最初に定義されたcollect2:ldが1つの終了ステータスを返しましたmake:* [main.exe]エラー1