Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Multiple definition of function - linker error - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Подключение sqlite к интерфейсу c++ http://www.cyberforum.ru/cpp/thread1750109.html
Объясните пожалуйста как подключить базу данных на sqlite к интерфейсу в c++ , понял что нужно подключать файлы а что дальше. Как создать базу и данные вносить в эту базу и вообще работать с этой...
C++ Структура jpeg файла не знаю в какой раздел это писать... посему прошу прощения за неточность.. растолкуйте пожалуйста кто врубится в тему как строится zigzag order графический формат JPEG.. я так понимаю каждая ячейка... http://www.cyberforum.ru/cpp/thread1749251.html
C++ Визуализация музыки, книги
Хочу почитать про визуализацию музыки, как это делать. Видел что-то на openFrameworks, но книг опять же не нашел, подскажите что-то нибудь
Различия использования регулярных выражений и генераторов парсеров в GCC и MSVC C++
Я слышал что G++ и MSVC используют lex и bison для построения дерева токенов и парсинга. А клэнг свой какой то язык, который обрабатывает бэкэнд. Недавно со знакомыми кодерами возник интересный...
C++ [C++11] STL unordered контейнеры http://www.cyberforum.ru/cpp/thread1748040.html
Думаю, проще всего мою проблему/задачу описать псевдокодом. class MyClass { void Something() { EventHandler(this); } }
C++ Демонстрация влияния отсутствия нужных записей в буфере TLB на эффективное время доступа к памяти Напишите программу, демонстрирующую влияние отсутствия нужных записей в буфере TLB на эффективное время доступа к памяти, путем измерения времени каждого доступа, затрачиваемого на проход большого... подробнее

Показать сообщение отдельно
dobroivan
0 / 0 / 1
Регистрация: 15.03.2016
Сообщений: 23

Multiple definition of function - linker error - C++

31.05.2016, 05:02. Просмотров 215. Ответов 1
Метки (Все метки)

Жалуется линкер на multiple definition функции TryParse, лог выглядит страшно непонятно. (В какой тег такое лучше засовывать, кстати?)

Кликните здесь для просмотра всего текста
CMakeFiles/HttpServer.dir/src/Net/Http/HttpClient.cpp.o: In function `Event<Closeable, void, void>::operator()()':
/home/username/Dropbox/ClionProjects/HttpServer/src/Net/Http/HttpMessage/Base/../../HttpMethod.h:18: multiple definition of `TryParse(std::string const&, HttpMethod&)'
CMakeFiles/HttpServer.dir/src/Net/Http/HttpServer.cpp.o:/home/username/Dropbox/ClionProjects/HttpServer/src/Net/Http/HttpMessage/Base/../../HttpMethod.h:18: first defined here
CMakeFiles/HttpServer.dir/src/Net/Http/HttpMessage/HttpSimpleRequest.cpp.o: In function `__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::string const, HttpMethod> > >::new_allocator()':
/usr/include/c++/4.8/bits/stl_tree.h:1411: multiple definition of `TryParse(std::string const&, HttpMethod&)'
CMakeFiles/HttpServer.dir/src/Net/Http/HttpServer.cpp.o:/home/username/Dropbox/ClionProjects/HttpServer/src/Net/Http/HttpMessage/Base/../../HttpMethod.h:18: first defined here
CMakeFiles/HttpServer.dir/src/Net/Http/HttpMessage/HttpFullRequest.cpp.o: In function `__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::string const, HttpMethod> > >::new_allocator()':
/usr/include/c++/4.8/bits/stl_tree.h:1411: multiple definition of `TryParse(std::string const&, HttpMethod&)'
CMakeFiles/HttpServer.dir/src/Net/Http/HttpServer.cpp.o:/home/username/Dropbox/ClionProjects/HttpServer/src/Net/Http/HttpMessage/Base/../../HttpMethod.h:18: first defined here
CMakeFiles/HttpServer.dir/src/Net/Http/HttpMessage/HttpSimpleResponse.cpp.o: In function `__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::string const, HttpMethod> > >::new_allocator()':
/usr/include/c++/4.8/bits/stl_tree.h:1411: multiple definition of `TryParse(std::string const&, HttpMethod&)'
CMakeFiles/HttpServer.dir/src/Net/Http/HttpServer.cpp.o:/home/username/Dropbox/ClionProjects/HttpServer/src/Net/Http/HttpMessage/Base/../../HttpMethod.h:18: first defined here
CMakeFiles/HttpServer.dir/src/Net/Http/HttpMessage/HttpFullResponse.cpp.o: In function `__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::string const, HttpMethod> > >::new_allocator()':
/usr/include/c++/4.8/bits/stl_tree.h:1411: multiple definition of `TryParse(std::string const&, HttpMethod&)'
CMakeFiles/HttpServer.dir/src/Net/Http/HttpServer.cpp.o:/home/username/Dropbox/ClionProjects/HttpServer/src/Net/Http/HttpMessage/Base/../../HttpMethod.h:18: first defined here
CMakeFiles/HttpServer.dir/src/Net/Http/HttpMessage/Base/HttpRequest.cpp.o: In function `std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> >::_Rb_tree(std::_Rb_tree<std::string, std::string, std::_Identity<std::string>, std::less<std::string>, std::allocator<std::string> > const&)':
/home/username/Dropbox/ClionProjects/HttpServer/src/Net/Http/HttpMessage/Base/../../HttpMethod.h:18: multiple definition of `TryParse(std::string const&, HttpMethod&)'
CMakeFiles/HttpServer.dir/src/Net/Http/HttpServer.cpp.o:/home/username/Dropbox/ClionProjects/HttpServer/src/Net/Http/HttpMessage/Base/../../HttpMethod.h:18: first defined here


HttpVersion.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#ifndef HTTPSERVER_HTTPVERSION_H
#define HTTPSERVER_HTTPVERSION_H
 
#include <string>
#include <map>
 
enum class HttpVersion
{
    Http09, Http10
};
 
bool TryParse(const std::string& str, HttpVersion& result);
 
#endif //HTTPSERVER_HTTPVERSION_H
HttpVersion.cpp:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "HttpVersion.h"
 
bool TryParse(const std::string& str, HttpVersion& result){
 
    const std::map<std::string, HttpVersion> strMap = {
            {"HTTP/0.9", HttpVersion::Http09 },
            {"HTTP/1.0", HttpVersion::Http10 }
    };
    auto resultIt = strMap.find(str);
    if (resultIt == strMap.end())
        return false;
    result = resultIt->second;
    return true;
}

Не по теме:

Я знаю, что "одна тема - один вопрос", но если есть более красивые решения по сопоставлению строки с enum, то напишите.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru