linux - 如何使用 libcurl 构建而不使用 apt-get 库?
问题描述
来自一个轻松的 Windows 背景,这个在 linux 中的构建更难理解,如果这是一个明显的问题,请道歉。
我有一个使用 libcurl 的 c++ 程序。它在 Windows 上构建良好,但我现在必须将它移植到 linux(特别是树莓派)。它使用 mime 功能,因此必须使用足够近的最新版本。我已经安装了 curl 7.62,方法是从https://curl.haxx.se/download.html下载并按照https://curl.haxx.se/docs/install.html中的说明安装到/home/ pi/库/。
我有一个虚拟的本地主机网络服务器进行测试。当我curl localhost
从终端打电话时,我得到:curl: (48) An unknown option was passed in to libcurl
. 在构建和运行我的程序时,我undefined symbol: curl_mime_init
在运行时得到一个。经过一番谷歌搜索,这似乎是版本不匹配,我通过检查版本确认了这一点: Calling curl-config --version
Gives: libcurl 7.62.0
,但Calling Gives curl --version
: curl 7.62.0 (armv7l-unknown-linux-gnueabihf) libcurl/7.52.1 <other stuff>...
。
我假设我的程序和 curl 都在寻找 libcurl 的其他软件,但是我如何将手动安装的 libcurl 版本指定为 g++,在运行时指定给我的 prog,并在从终端调用时指定 curl?
我的程序的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],但/ usr/local/lib中没有home/pi/libraries/curl-7.62.0/lib在上面的 makefile 中指定。
解决方案
推荐阅读
- angular - mat-checkbox 不检查条件是否为假(仅在双击时)
- c++ - 如何在扩展显示器上显示 QLabel
- r - R合并功能无法找到数据帧之间的共享匹配
- ios - ios auto-renewable-subscriptions - 识别谁购买了
- arrays - 过滤嵌套数组和对象
- cordova - 找不到模块'@angular/core' + ionic 3
- java - 服务器 vs ServletContextHandler vs ServletHolder vs Servlet
- mongodb - Mongoose - 在模型中预填充一对多关系
- custom-controls - 如何使用自定义 NSView 来模仿 NSAlert 通知模式行为?
- powershell - Powercli 查找已关机的虚拟机和关机日期