如何使用libcurl进行构建而不使用apt-get库?

时间:2018-12-05 11:43:28

标签: linux curl makefile shared-libraries libcurl

基于Windows的轻松背景,这个Linux的构建更加难以理解,因此,如果这是一个明显的问题,我们深表歉意。

我有一个使用libcurl的c ++程序。它在Windows上构建良好,但现在我必须将其移植到linux(特别是raspberry pi)。它使用了mime功能,因此必须使用足够接近的最新版本。我已经从 https://curl.haxx.se/download.html 下载了curl 7.62,并按照 https://curl.haxx.se/docs/install.html 中的说明将其安装到了 / home / pi / libraries /

我有一个虚拟的localhost网络服务器进行测试。当我从终端呼叫curl localhost时,我得到:curl: (48) An unknown option was passed in to libcurl。在构建和运行程序时,在运行时会得到一个undefined symbol: curl_mime_init。经过一番谷歌搜索,这似乎是版本不匹配,我通过检查版本来确认: 调用curl-config --version给出:libcurl 7.62.0,但是调用curl --version给出:curl 7.62.0 (armv7l-unknown-linux-gnueabihf) libcurl/7.52.1 <other stuff>...

我假设我的程序和curl都在寻找libcurl的其他软件,但是如何将手动安装的libcurl版本指定为g ++,在运行时指定给我的编,并在从终端?

我程序的makefile:

all: obj/curltests.o obj/Utility.o obj/curl_handler.o bin/curltests

obj/Utility.o: src/Utility.cpp src/Utility.h
    g++ -g -c -pthread src/Utility.cpp -o obj/Utility.o

obj/curl_handler.o: src/curl_handler.cpp src/curl_handler.h
    g++ -g -c -pthread src/curl_handler.cpp -o obj/curl_handler.o

obj/curltests.o: src/curltests.cpp
    g++ -g -c -pthread src/curltests.cpp -o obj/curltests.o

bin/curltests: obj/curltests.o obj/Utility.o obj/curl_handler.o makefile
    g++ -Wall -g \
        -I src \
        -L/home/pi/libraries/boost_1_68_0/stage/lib -lboost_system \
        -lboost_filesystem -lboost_program_options -lboost_date_time \
        obj/Utility.o obj/curltests.o obj/curl_handler.o  \
        -L/home/pi/libraries/curl-7.62.0/lib -lcurl \
        -o bin/curltests

不确定是否有帮助,但是运行whereis libcurl.so / usr / lib / 中显示 libcurl [.la] [。so] / usr / local / lib 中的libcurl [.a] [。la] [。so] ,但 /home/pi/libraries/curl-7.62.0中没有/ lib ,如上面的makefile中所指定。

0 个答案:

没有答案
相关问题