Comments (7)
Рад что вы всё ещё не сдались в попытках использовать мой проект)
Я оставлял ремарку в вики и в ридми проекта о том что компилировать желательно в Visual Studio, так как я не проверял насколько всё правильно компилируется и работает с mingw. Но насколько я вижу по вашей ошибке проблема линковки возникает с моей стороны
попробуйте добавить
#include "protocol/smtp/mail/mail.h"
перед
#include "protocol/smtp/client.h"
отпишитесь потом
from cout.
У вас прекрасная поддержка проекта :-)
всем бы так.
Сейчас попробую, правильно я понимаю, что библиотек crypt32, libcrypto64MTd и libssl64MTd (ну, и заголовочных файлов от openssl) должно быть достаточно для сборки проекта?
Спасибо.
from cout.
Я просто рад и приятно удивлён что мой код действительно кому-то нужен :0
Да, вы правильно поняли
from cout.
Спасибо за ответ.
я заранее прошу прощения, что дальше "многобукв", я надеюсь, что мой комментарий будет полезен.
Ваш проект очень интересен, так как нет ни одного общеизвестного проекта кроссплатформенной заголовочной библиотеки для отправки email. Наиболее известна https://github.com/karastojko/mailio, но она требует boost, а boost - это просто монстр.
К сожалению, я столкнулся с такой трудностью:
ок, с тем, как линковать libssl - я разобрался благодаря stackoverflow.
Когда c этим справился - стал получать при попытке собрать свою тестовую программу ошибки линковки, точно такие же, как в том файле, который я уже присылал.
Но теперь я посмотрел на эти ошибки более внимательно. Они все вида "undefined reference to Protocol::SMTP::Client::SetServer", "undefined reference to
Protocol::SMTP::Client::SetPassword" и т.п. - то есть, я просто не все файлы включаю в команду сборки проекта!
И тут мы подходим к самому интересному.
Вы собираете проект при помощи VS, она умная, и все действия с компилятором происходят у неё "в кишочках".
Я собираю проект из командной строки, командой
g++.exe -std=c++17 -static -g test_mail.cpp -lssl -lcrypto -lws2_32 -lgdi32 -lcrypt32 -o test_mail.exe
и в эту команду мне нужно после "test_mail.cpp" добавить все остальные фалы Вашего проекта, иначе не слинкуется.
А я их не знаю, они содержатся в проекте *.vcproj, котрый не включен в github - репозиторий (и это, наверное, правильно, если Вы хотите, чтобю Ваш проект собирался не только студией)
Кроме того, если я использую Ваш проект именно как header-only library, добавлять эти файлы не очень удобно: в идеале хотелось бы просто включить что то инклудом, и получить нужную функциональность.
Очень интеерсное решение этой проблемы я встречал в таком проекте: https://github.com/nlohmann/json
Это header-only json library, и у неё есть как бы две версии: одна - девелоперская, где код разбит на файлы, разложенные по папкам. Вторая - то, что нужно "просто подключить": это один файл https://github.com/nlohmann/json/blob/develop/single_include/nlohmann/json.hpp в который включен весь код.
я думаю, у парня используется какая то специальная система сборки, которая это файл делает из всех остальных файлов проекта.
Теперь о пожелании: не могли бы вы в wiki просто перечислить файлы проекта? Можно даже просто добавить картинку открытой студии, где они все видны.
Надеюсь, я вас не огорчил.
Успехов!
from cout.
точно, вы правы
cpp файлов в проекте довольно много, думаю вам стоит подождать релиза
вы меня вдохновили, так что я на выходных займусь этим проектом, и соберу релиз как раз как nlohmann собрал свой релиз json - так и хотел сделать самого начала
from cout.
пре-релиз готов
вики опять отчасти устарела, поскольку я поменял архитектуру приложения
обновил и исправил немного пример и добавил два примера попроще в [папке examples] (https://github.com/imnetcat/cout/examples) что бы и без вики пока что можно было разобраться
Стоит отметить что теперь для релизной версии требуются релизные версии библиотек OpenSSL:
libcrypto64MT.lib
libssl64MT.lib
а для дебаг версии - дебаг версии библиотек соответсвено
libcrypto64MTd.lib
libssl64MTd.lib
crypt32.lib никуда не делась, так и осталась
кстати прежде чем использовать мой фреймворк стоит разрешить "доступ к аккаунту из неизвестных приложений" в настройках аккаунта электронной почты
from cout.
Если снова появятся проблемы - откроем снова, а пока считаю этот issue исчерпанным
from cout.
Related Issues (20)
- обёртка namespace
- Создать уровень абстракции вокруг методов шифрования
- Структуры в global-scope
- Учесть запросы сервера
- Переход на gcc HOT 1
- Системы проверки кода HOT 1
- Списки инициализации
- Нужно создать простую демку для этого фреймворка
- Протестировать решение юнит-тестами
- Исправить найденные юнит-тестами ошибки
- Добавить расширенные юнит-тесты
- Make
- noexcept
- Return code
- Улучшить документацию функций интерфейса
- Добавить документацию к интерфейсу программы
- Идентификация сервера
- Interface
- fatal error: email-client/email.h: No such file or directory HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cout.