I have a custom static library called "libcurlwrapper", which just wrapps the execution of libcurl functions, and a main app which calls the library's function.
Compiling the library works, but when it comes to linking the main app I get these errors:
/usr/bin/ld: .//libcurlwrapper.a(curl_wrapper.o): in function `http3_demo()':
curl_wrapper.cpp:(.text+0xd): undefined reference to `curl_easy_init'
/usr/bin/ld: curl_wrapper.cpp:(.text+0x39): undefined reference to `curl_easy_setopt'
/usr/bin/ld: curl_wrapper.cpp:(.text+0x54): undefined reference to `curl_easy_setopt'
/usr/bin/ld: curl_wrapper.cpp:(.text+0x60): undefined reference to `curl_easy_perform'
/usr/bin/ld: curl_wrapper.cpp:(.text+0x73): undefined reference to `curl_easy_strerror'
/usr/bin/ld: curl_wrapper.cpp:(.text+0x9d): undefined reference to `curl_easy_cleanup'
collect2: error: ld returned 1 exit status
make: *** [Makefile:5: all] Error 1
What exactly causes these linker errors?
Ideas how to get rid of them?
Any Help is appreciated!
Thanks
libcurlwrapper > curl_wrapper.h:
#pragma once
#include <curl/curl.h>
void http3_demo();
libcurlwrapper > curl_wrapper.cpp:
#include "curl_wrapper.h"
void http3_demo() {
    // Source taken from here: https://curl.se/libcurl/c/http3.html
    CURL *curl;
    CURLcode res;
    curl = curl_easy_init();
    if(curl) {
        curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
        curl_easy_setopt(curl, CURLOPT_HTTP_VERSION, (long)CURL_HTTP_VERSION_3);
        // Perform the request, res will get the return code
        res = curl_easy_perform(curl);
        // Check for errors
        if(res != CURLE_OK) {
            fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
        }
        // Always cleanup
        curl_easy_cleanup(curl);
    }
    printf("http3_demo: endmarker");
}
libcurlwrapper > Makefile:
CXX = g++
CXXFLAGS = -lcurl
all:
    @$(CXX) -c ./curl_wrapper.cpp $(CXXFLAGS)
    @ar -rc libcurlwrapper.a ./curl_wrapper.o
main_app > main.cpp:
#include "curl_wrapper.h"
int main() {
    http3_demo();
    return 0;
}
main_app > Makefile:
CXX = g++
CXXFLAGS = -L ./ -lcurlwrapper
all:
    @$(CXX) main.cpp $(CXXFLAGS) -o main_app
 
    