Loading...
Filipbg avatar Filipbg 26 Точки

Task 2 Censorship

Здравейте. Вчера цял ден се мъча с двата .cpp файла. 

Колегите от групата ми казаха да ползвам "Add Files..." от менюто "Project (За CodeBlocks става въпрос) защото иначе не ги добавя в проекта автоматично. Направих го това и непрекъснато показва fatal error: Article13Filter.h: No such file or directory при полужение че си е там.Търсих makefile да го едитна, защото един колега каза че при него така си оправил проблема, уви такъв файл няма в проекта. После реших да си инсталирам "великия" Clion дето го хвалят. Правя си проект, добавям Article13Filter.cpp и Article13Filter.h, опитвам се да го компилирам и хвърля тези грешки: 

undefined reference to `Article13Filter::Article13Filter(std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >)'

undefined reference to `Article13Filter::blockIfCopyrighted(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'

undefined reference to `Article13Filter::getBlocked[abi:cxx11]()'

В StackOverFlow пак казват че е зареди makefile и че трябва да се едитне. Тоя линкер ме побърка. А проблема не е в кода. Това е код който работи в Judge

https://pastebin.com/miUzKV8h
https://pastebin.com/YBWBnR52
https://pastebin.com/qbEyY7AL

Моля ако някой се е сблъсквал с този проблем да помогне

0
C++ Advanced
j.petrov_90 avatar j.petrov_90 373 Точки

Привет, колега,

Не съм работил с CodeBlocks и не съм сигурен, че все пак ще успей да помогна.
Не е нужно да модифицираш makefile-a на ръка. Това го правят IDE-тата. Ако не се случват нещата, значи не си съзвал правилно проект/не добавяш правилно файловете.


Както казах и на лекцията предполагам, че трябва да създадеш нов "проект" и да започнеш да добавяш нови файлове в него.
Ето едно примерно клипче как става това:
https://www.youtube.com/watch?v=i1kubuz1loI

От тук нататък е важно къде точно създаваш новите си файлове.
#include "Article13Filter.h" означава, че програмата очаква този файл да се намира на същото ниво, където е main.cpp-то ти.

Вариант 2:
Опитай през CodeBlocks да му дадеш create new Class. Именувай го Article13Filter
Остави CodeBlocks сам да си създаде двойката файлове Article13Filter.h и Article13Filter.cpp
Виж къде ги създава.
Копирай съдържанието на Article13Filter.h от скелета в твоята задача.

Поздрави.

0
Filipbg avatar Filipbg 26 Точки

Ахааааа. Ето що ставало така. Аз без да се замислях ги добавях, а се оказва че CodeBlocks не ги копира, а директно асоцира към проекта. А аз ги добавях от отелни директории. И затова е ставало това. Сега първо ги копирах в директорията на проекта и след това от "Project/Add Files..." асоцирам към проекта. И тръгна laugh

(По между другото си прейнсталирах CodeBlocks, защото плъгина ProjectsOptionsManipulator.dll не работеше)

Благодаря за съдействието!

0
18/01/2020 14:40:03
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.