curl的编译在这篇文档里面也有讲到:
20240924 指定8.4.0版本的curl编译
【编译】CMake, TCMalloc, jsoncpp, nghttp2, openssl, curl
这里grpc的编译看这篇文档就行了:
【grpc cpp】项目环境搭建 + Demo运行
那问题主要就出在openssl版本上。
curl 依赖的openssl版本默认是系统版本
grpc依赖的openssl版本默认是third_party的版本
所以解决他们之间依赖的办法:
curl依赖grpc的openssl版本
curl和grpc都使用系统版本
这里采用了方案2,那么需要修改grpc的编译命令:
grpc v1.36.4
-DCMAKE_BUILD_TYPE=Release \
-DgRPC_BUILD_TESTS=OFF \
-DCMAKE_INSTALL_PREFIX=../../release \
-DgRPC_SSL_PROVIDER=package \
../..
make -j
make install
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
git
clone
-
b
v1
.
36.4
https
:
//gitee.com/tkxiong/grpc
cd
grpc
git
submodule
init
vim
.
git
/
config
git
submodule
update
mkdir
-
p
cmake
/
build
mkdir
-
p
release
/
cd
cmake
/
build
cmake
-
DgRPC_INSTALL
=
ON
\
-
DCMAKE_BUILD_TYPE
=
Release
\
-
DgRPC_BUILD_TESTS
=
OFF
\
-
DCMAKE_INSTALL_PREFIX
=
.
.
/
.
.
/
release
\
-
DgRPC_SSL_PROVIDER
=
package
\
.
.
/
.
.
make
-
j
make
install
git clone -b v1.65.5 https://github.com/grpc/grpc grpc-1.65.5
cd grpc-1.65.5
git submodule update --init
mkdir -p cmake/build && cd cmake/build
cmake -DgRPC_INSTALL=ON \
-DCMAKE_BUILD_TYPE=Release \
-DgRPC_BUILD_TESTS=OFF \
-DCMAKE_INSTALL_PREFIX=../../release \
-DgRPC_SSL_PROVIDER=package \
-DOPENSSL_USE_STATIC_LIBS=TRUE \
../..
make -j
make install
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
git
clone
-
b
v1
.
65.5
https
:
//github.com/grpc/grpc grpc-1.65.5
cd
grpc
-
1.65.5
git
submodule
update
--
init
mkdir
-
p
cmake
/
build
&&
cd
cmake
/
build
cmake
-
DgRPC_INSTALL
=
ON
\
-
DCMAKE_BUILD_TYPE
=
Release
\
-
DgRPC_BUILD_TESTS
=
OFF
\
-
DCMAKE_INSTALL_PREFIX
=
.
.
/
.
.
/
release
\
-
DgRPC_SSL_PROVIDER
=
package
\
-
DOPENSSL_USE_STATIC_LIBS
=
TRUE
\
.
.
/
.
.
make
-
j
make
install