Как происхдит подключение библиотек в C++?

Решил для проекта использовать OpenCV, начал подключать к Visual Studio.

Но это не суть, меня интересует (абстрактно от OpenCV): всегда ли в C++ так геморно подключаются библиотеки? Как-то доставляет очень много неудобств то, что приходится прописывать пути к разным файлам (.lib и .dll) (причём, разным для Debug и Release версий) в настройках проекта (ещё и в разных пунктах), добавлять пути в системные переменные, заголовочники в проект и т.д. Это всегда так на плюсах или просто библиотека такая? Просто мои знания плюсов ограничиваются лишь университетским курсом... Нельзя просто взять и кинуть dll в папку, добавить в референсы (как в C#)?
  • Вопрос задан
  • 6422 просмотра
Решения вопроса 1
@lookid
Да. С++ же делался как исследовательский проект. Ну вот так решили. Посчитали, что разбивать на h+lib+dll эффективнее. Python делался одним человеком на коленке, и соответственно получился проще.
www.emgu.com/wiki/index.php/Main_Page вот .Net wrapper to the OpenCV
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@DancingOnWater
Вообще-то говоря, в любом компилируемом языке подключение разделяемой библиотеке идет именно так. Весь вопрос в том, как это автоматизирует IDE.

Из-за пренебрежительного отношения MS к С++ нормальной поддержки его в студии нет. По моему опыту наиболее заточенным под плюсы IDE и удобная - это QtCreator.
Ответ написан
AxisPod
@AxisPod
Никто вам не запрещает использовать Release библиотеки в Debug режиме, можете использовать одну и ту же библиотеку. Разве что нормально не сможете трейсить данную библиотеку.

Особых проблем с подключением нет, проблема в том, что runtime библиотека должна быть одной версии, иначе можно словить очень странные баги.

Разница с C# в том, что всё хранится в одном файле, тогда как в C++ в разных.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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