I wrote a C library that utilizes the libcurl library to interact with a REST API. I wrote this on a debian based system, but am now attempting to use it on an Arduino, which runs an OpenWRT distribution. When trying to use it, I noticed there was an issue when the compiler attempts to use the libcurl library, so I wrote a super simple program to test it.
#include <curl/curl.h>
void main() {
CURL *curl;
}
I then compiled it like so...
gcc -lcurl test.c -o test
and got back the following.
test.c: In function 'main':
test.c:4:2: error: unknown type name 'CURL'
libcurl was already installed on the device.
Package libcurl (7.29.0-1) installed in root is up to date.
Here's what displays when I run opkg files libcurl
Package libcurl (7.29.0-1) is installed on root and has the following files:
/usr/lib/libcurl.so.4
/usr/lib/libcurl.so.4.3.0
Having the hardest time trying to figure out what the problem is. This link was the only thing I found remotely close to being similar to my problem, but the solutions didn't work for me. Does anyone have any suggestions?
Thanks.
EDIT: So I think I found some more information about the problem. I think I'm missing a lot of the libcurl development packages as well because I looked at the opkg.conf file and saw that the only package list was the following.
http://downloads.arduino.cc/openwrtyun/1/packages
Maybe I need to find an OpenWRT package list having the extra libcurl packages I need? I can't seem to find them though.
So I was able to solve my problem, but I guess not "properly".
Apparently, the OpenWRT distribution I'm running uses a completely different libcurl library, and when I tried to uninstall it, the opkg package manager warned me that because it too also utilizes the currently installed libcurl library, it might break if I remove it.
Therefore, I manually installed the version of libcurl I needed from Github, and then made the proper references in my code to use this other version instead.
Thanks everyone for helping me get in the right direction.