Кроссплатформенность c ++ с libcurl - PullRequest
3 голосов
/ 08 декабря 2009

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

Тем не менее, я действительно хочу заняться некоторыми настольными приложениями.

Я хочу попытаться разработать простое приложение, которое подключится к моему серверу и получит RSS-канал, а затем отобразит его в консоли. Мой план атаки состоит в том, чтобы использовать libcurl (и curlpp) для захвата канала (я также хотел бы сделать больше вещей в curl в будущем). Но я хочу иметь возможность запускать эту небольшую программу на linux, windows и mac, потому что я хочу разбираться в разработке кроссплатформенности.

Итак, вот вопрос (и я знаю, что это крайне нубистски): Как мне написать код на С ++, который будет использовать libcurl и curlpp и будет работать на 3 основных ОС? Главное, что я не понимаю, если мне нужно скомпилировать libcurl и curlpp, то как это работает при попытке перенести его на другие платформы?

Ответы [ 3 ]

3 голосов
/ 08 декабря 2009

Вам нужно написать код переносимым образом - по сути, сделать его консольным приложением. Затем вы переносите исходный код (не exe) на другие платформы и компилируете его там и связываетесь с версией llibcurl для каждой конкретной платформы.

0 голосов
/ 08 декабря 2009

Я бы также порекомендовал Qt4, я написал небольшой урок о том, как настроить компилятор windows gcc на linux и скомпилировать Qt4 / OpenSSL с ним для окон, надеюсь, это поможет. http://www.limitlessfx.com/mingw-openssl-qt4-for-windows-on-linux.html

Вы можете легко адаптировать этот учебник к компиляции libcurl вместо того, чтобы просто переходить на Qt4.

0 голосов
/ 08 декабря 2009

Нейл прав, но использование каркаса сделает вашу жизнь проще. Попробуйте QT , это очень приятно. Он имеет кроссплатформенный http API и интегрирует curl.

...