Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2015, 14:01   #1
R_G
Форумчанин
 
Регистрация: 22.11.2010
Сообщений: 114
По умолчанию Не могу добавить в проект websocketpp. C++ и web sockets

Компилирую с помощью g++ (Mingw32, Windows).
Вот проект - https://github.com/zaphoyd/websocket.../Build-Library

Спросите что хочу в итоге?
- веб сервер который сможет по websocket с браузерами разговаривать в реальном времени.

Почему выбрал это?
- долго искал.. показалось, что это более годный вариант. Подскажите если есть что-то лучше.

Node JS не подойдет?
- пока нужно на c++.

Скачал архив, распаковал, сделал cmake, make install.
Поставил boost.
В cmd выполняю команду:
Код:
g++ test.cpp -I <path>\boost_1_55_0_bin\include\boost-1_55 -I <path>\websocketpp_bin\include -L <path>\boost_1_55_0_bin\lib
Выскакивает ошибка. (на фото)

Код:
Код:
#include <iostream>
#include <boost/regex.hpp>
#include <conio.h>
#include <websocketpp/config/asio_no_tls.hpp>
#include <websocketpp/server.hpp>

using namespace std;
using namespace boost;
int main() {
    std::cout<<"test";
    getch();
    return 0;
}
Изображения
Тип файла: jpg g++_error.jpg (45.4 Кб, 123 просмотров)
R_G вне форума Ответить с цитированием
Старый 30.10.2015, 14:07   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ну а сами библиотеки кто подключать будет?
инклюды это одно, пути другое, а сами библиотеки то?(WS_32 например и прочие буста)

грубо говоря вы и не добавили его до конца.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 30.10.2015, 14:14   #3
R_G
Форумчанин
 
Регистрация: 22.11.2010
Сообщений: 114
По умолчанию

то есть нужно все папки и подпапки <path>\boost_1_55_0_bin\include\boo st-1_55\boost указать?
Вот так -I <path>\boost_1_55_0_bin\include\boo st-1_55\boost\accumulators -I <path к другой библиотеке>?
R_G вне форума Ответить с цитированием
Старый 30.10.2015, 15:42   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,708
По умолчанию

нет, надо указать используемые библиотеки -lopengl, например
p51x вне форума Ответить с цитированием
Старый 02.11.2015, 08:32   #5
R_G
Форумчанин
 
Регистрация: 22.11.2010
Сообщений: 114
По умолчанию

Извините, а точнее можете сказать, что вводить в cmd? Может что-то еще нужно сделать?
Добавляю в конце команды параметр -llibboost - ошибка:
cannot find -llibboost.
R_G вне форума Ответить с цитированием
Старый 02.11.2015, 10:08   #6
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Прочитайте про опцию -L
waleri вне форума Ответить с цитированием
Старый 02.11.2015, 10:48   #7
R_G
Форумчанин
 
Регистрация: 22.11.2010
Сообщений: 114
По умолчанию

Order does matter when you use several options of the same kind; for example, if you specify -L more than once, the directories are searched in the order specified. Also, the placement of the -l option is significant.

The directories searched include several standard system directories plus any that you specify with -L.

Как я понял с помощью этой опции указываются директории сторонних библиотек, которые нужно использовать в своем проекте, и что они будут подключены в порядке каком указаны при компилировании. Но вот что значит что -l важная опция (the -l option is significant)? Подскажите, пожалуйста, как правильно откомпилировать, что дописать в команду, чтобы откомпилировалось? Я с веб работаю, с си++ только в уневере лабы делал и то в билдере, да в студии)
R_G вне форума Ответить с цитированием
Старый 02.11.2015, 11:10   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

-L пути поиска.
-l что искать.

насчет буста тут зависит как он у вас скомпилен.
смотрите где находятся недостающие функции.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 02.11.2015, 14:01   #9
R_G
Форумчанин
 
Регистрация: 22.11.2010
Сообщений: 114
По умолчанию

Ура! Скомпилилось)

Вот команда
Код:
g++ test2.cpp -L <path>\boost_1_55_0_bin\lib -I <path>\boost_1_55_0_bin\include\boost-1_55 -I <path>\websocketpp_bin\include 
  -lboost_system-mgw44-mt-1_55 -lboost_chrono-mgw44-mt-1_55 -lws2_32 -lwsock32
Методом проб и ошибок нашел, что нужно имя библиотеки писать без lib.
libboost_date_time-mgw44-mt-1_55.a
Ну и нагуглил -lws2_32 -lwsock32 нужно подключать, чтобы win-сокеты работали.
Только не понятно почему. Может кто знает ответ

Пепел Феникса писал:
Цитата:
насчет буста тут зависит как он у вас скомпилен.
смотрите где находятся недостающие функции.
А где их смотреть? В каждом файле библиотек или *.hpp?

Последний раз редактировалось Stilet; 02.11.2015 в 14:47.
R_G вне форума Ответить с цитированием
Старый 02.11.2015, 14:42   #10
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,708
По умолчанию

Цитата:
Методом проб и ошибок нашел, что нужно имя библиотеки писать без lib.
А можно просто было доку прочитать или хелп.

Цитата:
Ну и нагуглил -lws2_32 -lwsock32 нужно подключать, чтобы win-сокеты работали.
Только не понятно почему.
Потому что это либы сокетов в винде, не?..
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
web sockets for 3.5 net Manonia Общие вопросы .NET 3 29.04.2015 11:55
Добавить в проект многопоточность seojaa Фриланс 1 18.01.2014 19:57
Как добавить форму в проект enjo Visual C++ 7 31.10.2012 13:33
Добавить другой проект Andrey85 Общие вопросы Delphi 1 01.10.2010 03:22
Windows Sockets / Сокеты / RAW Sockets bwwebm Работа с сетью в Delphi 4 23.04.2010 09:53