C ++: Libcurl curl_easy_init () выдает ошибку нарушения прав доступа и вылетает из программы - PullRequest
3 голосов
/ 24 октября 2010

Я пытаюсь использовать libcurl с программой, которую я создаю, но у меня есть некоторые проблемы с ней. До сих пор я пробовал только примеры с веб-сайта libcurl, но они вылетали, как только программа добралась до инициализации curl.

Мой текущий код:

#include <iostream>
#include <curl/curl.h>

int main(int argc, char *argv[])
{
    CURL *curl;
    CURLcode res;

    curl = curl_easy_init();
    if(curl)
    {
        curl_easy_setopt(curl, CURLOPT_URL, "http://garrysmod.fi/");
        res = curl_easy_perform(curl);

        curl_easy_cleanup(curl);
    }

    return 0;
}

Я также убедился, что компилятор и компоновщик могут найти ресурсы, и что файл dll (libcurl.dll) находится в папке программы, но он продолжает падать. Я попытался отладить с VS2010, и он выдал ошибку «нарушение прав доступа» в функции инициализации curl_easy_init ().

Любая помощь будет оценена!

Ответы [ 3 ]

2 голосов
/ 26 октября 2010

Это почти наверняка несоответствие DLL.Сначала проверьте ваш PATH на наличие более старых или разных версий libcurl.dll.

Я только что собрал ваш фрагмент с использованием VS2010 professional для этого выпуска для MSVC 7.18.0 / Win32 generic , и он работал нормально.

1 голос
/ 14 февраля 2011

Программа скомпилирована нормально на моей машине (Ubuntu Box):

#g++ -lcurl url.c -o url

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>Garry's Mod Finland - Etusivu</title>
    <meta h ....
0 голосов
/ 24 октября 2010

Вы можете попробовать запустить программу в релизной компиляции и посмотреть, работает ли она без ошибок. Я заметил, что с несколькими библиотеками с открытым исходным кодом, которые я использовал в Windows, что если вы связываете отладочную сборку с релизной сборкой библиотеки ОС, все работает не очень хорошо. Затем я обычно устанавливаю параметры компилятора для связи с отладочной версией библиотеки в отладочной сборке и с версией выпуска библиотеки в сборке выпуска.

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

...