CMake, TCMalloc, jsoncpp, nghttp2, openssl, curl

话不多说,编译CMake, TcMalloc, jsoncpp 以及一些其他的库…

【编译】CMake, TCMalloc, jsoncpp, nghttp2, openssl, curl

CMake 版本3.21.1

其实C++编译版本我们一般用 devtoolset-10,但是也无所谓。

下载CMake源码:

编译:

重启bash, 查看CMake版本:

命令:

–prefix 就是生成路径,需要绝对地址。

如果用cmake的话:

这个是编译完整版,取 libtcmalloc_minimal.a 用即可.

Jsoncpp

-DCMAKE_INSTALL_PREFIX= 就是install路径,可以用相对地址。

我在curl用到了https 和 http2, 故需要提前编译其依赖 nghttp2 与 openssl.

nghttp2

ENABLE_LIB_ONLY 只编译库

ENABLE_STATIC_LIB 编译静态库

openssl

这里本人试了1.1.11l版本,发现不行(可能是因为编译版本与系统版本不同,curl编译出问题链接到系统版本了);

改为尝试1.0.2u版本。

记录: 最终发现是grpc也依赖了openssl,与 curl依赖的openssl版本冲突导致的问题。

20240923 tkxiong 修改为使用 openssl 3.3.2 版本

curl 修改为使用 7.83.0 版本

下文的want_h2_path, 在7.83.0版本中为: want_nghttp2_pkg_config_path

20240924 tkxiong 这里不应该采用修改 configure 文件的方式,而应该在nghttp2安装目录下新建符号链接从lib指向lib64。

with-openssl 后面不带地址说明使用系统openssl地址。

git clone 编译方式:

问题还是没解决。 —— 最后是curl修复了代码.

libuv

openssl-1.1.1l

指定 no-shared 是因为我们项目都统一使用静态库,不需要编译动态库。

zlib 1.2.11

protobuf 3.14.0.0

re2

cares-1_18_1

abseil-cpp 20210324.2

Tagged on:     

您可能还喜欢...

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注