170 похожих чатов

Парни, выкидывает такую ощику: LexicalAnalyzer.obj : error LNK2005: "void __cdecl

getSplittedText(...) уже определен в L.W.2 - Work with Regular Expression.obj

Не подскажете как исправить?

LexicalAnalyzer.сpp:

void LexicalAnalyzer::Analyze()
{
try
{
std::vector<std::string> splittedStrs;

getSplittedText(FileReader::read_from_file("file.txt").str(), splittedStrs);
}
catch (const std::exception& ex)
{
throw std::runtime_error("");
}
}



LexicalAnalyzer.hpp:

#include <tuple>

#include "FileReader.hpp"
#include "TextSplitter.hpp"

class LexicalAnalyzer
{
public:

static void Analyze();

private:
std::vector<std::tuple<std::string, std::string, std::string>> lexemTable;
};



L.W.2 - Work with Regular Expression.cpp:

#include "LexicalAnalyzer.hpp"

int main()
{
try
{
LexicalAnalyzer::Analyze();
}
catch (const std::exception& ex)
{
std::cerr << ex.what();
return -1;
}
return 0;
}

FileReader.hpp:

#pragma once
#include <string>
#include <fstream>
#include <iostream>
#include <sstream>

class FileReader
{
public:

static std::stringstream read_from_file(const char* filename)
{
try
{
std::ifstream file(filename);

if (!file.is_open())
{
throw std::runtime_error("Error with reading file.");
}

std::stringstream buffer{};
buffer << file.rdbuf();
return buffer;
}
catch (const std::exception& ex)
{
throw ex;
}
}
};

FileSplitter.hpp:

#pragma once
#include <algorithm>
#include <vector>

template <class Container>
void strSplitter(const std::string& str, Container& cont,
const std::string& delims = ";")
{
std::size_t current, previous = 0;
current = str.find_first_of(delims);
while (current != std::string::npos) {
cont.push_back(str.substr(previous, current - previous));
previous = current + 1;
current = str.find_first_of(delims, previous);
}
cont.push_back(str.substr(previous, current - previous));
}

void getSplittedText(std::string rawStr, std::vector<std::string>& splittedStrs)
{
strSplitter<std::vector<std::string>>(rawStr, splittedStrs);
}

11 ответов

18 просмотров

для изпровленея ащики нужна всиголищ https://bfy.tw/QgFI .... вбить lnk2005 в гугл.

Во-вторых, вы за каким лешем пишите определение функции в h файле? Вам говорили что так можно?

Gabriel- Автор вопроса
Gabriel
Да, говорили что можно.

При каких условиях?

Gabriel- Автор вопроса
🐈
При каких условиях?

Шаблоны, к примеру.

Gabriel
Шаблоны, к примеру.

Шаблоны это не функции

Это нарушение ODR, ищи, где эта get SplittedText определена, и оставь только одно определение

Нельзя её в заголовочном файле определять

В следующий раз такое через pastebin.com или аналоги

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
3
Карта сайта