Search code examples
.net-corelibcurlraspberry-pi2

libcurl error executing dotnet 2.0 console program in raspberry


I'm trying to execute a simple program in a Raspberry 2 (raspbian). Other little console projects work Ok, but this one shows this error:

dotnet: relocation error: /opt/dotnet/shared/Microsoft.NETCore.App/2.0.4/System.Net.Http.Native.so: symbol curl_multi_wait, version CURL_OPENSSL_3 not defined in file libcurl.so.4 with link time reference

I tried to install libcurl4-openssl-dev but that doesn't solve the problem. Any ideas?

Edit: The program is using the WebClient class in the System.Net library, this one doesn't work either:

using System;
using System.Net;

namespace pruebahttpnet
{
    class Program
    {
        static void Main(string[] args)
        {
            var cander = new WebClient().DownloadString(new Uri("https://gist.githubusercontent.com/febuiles/caec38b2bdf5768f4abf0677249d6901/raw/4426349bdb23018088e19db0dc22dcd4f3e1fee1/foo.txt"));
            Console.WriteLine(cander);
        }
    }
}

Solution

  • The problem was that I installed dotnet for Jessie distribution and Raspbian was in Wheezy version:

    deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-debian-jessie-prod jessie main
    

    I solved it upgrading Raspbian to jessie version to get libcurl >7.28 that has the curl_multi_wait function definition.