LINUX.ORG.RU

Linux C++ Как обернуть свои классы, использующие стороние библиотеки, в библиотеку?


0

2

Добрый день! У меня есть следующее:

A.h
#include <curl/curl.h>
class A
{
public:
  void Method();
};
A.cpp
#include "A.h"
void A::Method() {}
Мне нужно обернуть этот класс(набор классов), использующий библиотеку curl в библиотеку. (Статическую и динамическую), чтобы клиент мог использовать метод Method. То есть уметь выполнить у себя нечто типа (при этом curl на клиенте не установлен):
#include "A.h"
A a;
a.Method()
Не подскажете, как правильно собрать статическую и динамическую биюлиотеку в моем случае и скомпилировать клиентский код библиотекой для проверки?



Последнее исправление: Masha (всего исправлений: 1)

Ответ на: комментарий от abalakin

Меня как раз волнует полное время сборки, а не то куда оно потрачено. У cmake с этим лучше.

а меня волнует корректность и возможность сборки. у cmake с этим никак.

Но мой опыт показывает, что переносимость и удобство у cmake выше.

переносимость - бесспорно (автотулсы, например, ориентированы исключительно на unix-окружение).

удобство, особенно для конечного пользователя, отсутствует.

удобство для разработчика заканчивается, как только надо сделать что-то нетривиальное, для чего в cmake не написали готовый макрос. т.е. практически сразу в любом более-менее нетривиальном проекте.

Зачем если есть cmake-gui ?

это только доказывает, что синтаксис такой дебильный, что для него пришлось аж целый гуй сделать. оно и понятно, разработчики не знают, что иногда приходится компилять на сервере без иксов через ssh.

Не поверите, но приходится это делать регулярно причем на куче систем (Ubuntu i386, Ubuntu amd64, WinXP 32bit и Win7 64bit).

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

waker ★★★★★
()
Ответ на: комментарий от waker

переносимость - бесспорно (автотулсы, например, ориентированы исключительно на unix-окружение).

msys никто не отменял, а во всех других ОС и так есть, это не основная проблема

удобство, особенно для конечного пользователя, отсутствует.

спорно

удобство для разработчика заканчивается, как только надо сделать что-то нетривиальное, для чего в cmake не написали готовый макрос. т.е. практически сразу в любом более-менее нетривиальном проекте.

Хмм, в cmake многие вещи отсутствуют — например, сборка документации, swig интерфейсы и пр. Ничего страшного — приходится спускаться на уровень ниже и вместо 1-3 строчки писать 5-10 строк ... Морока небольшая, но ничего сверхсложного.

это только доказывает, что синтаксис такой дебильный, что для него пришлось аж целый гуй сделать. оно и понятно, разработчики не знают, что иногда приходится компилять на сервере без иксов через ssh.

Хмм, вроде cmake-gui не отменяет консольный cmake? Только cmake, в отличии от autotools, сохраняет дополнительно все настройки в CMakeCache.txt, который *очень* удобно править в консоли ;). А в командной строке они почти эквивалентны по синтаксису с autotools.

abalakin ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.