Compiling libraries in Linux

yeap, this topic helps a lot with final building grpc framework (1.59) on Linux (Ubuntu 22.04) and integrating in UE (5.2).

with -nodefaultlibs there is a problem with building.

final command line:

CXXFLAGS="-fPIC -std=c++17 -nostdinc++ -I/home/igor/Documents/Repos/UnrealEngine/UnrealEngine/Engine/Source/ThirdParty/Unix/LibCxx/include -I/home/igor/Documents/Repos/UnrealEngine/UnrealEngine/Engine/Source/ThirdParty/Unix/LibCxx/include/c++/v1 -stdlib=libc++ -L/home/igor/Documents/Repos/UnrealEngine/UnrealEngine/Engine/Source/ThirdParty/Unix/LibCxx/lib/Unix/x86_64-unknown-linux-gnu/  -L/home/igor/Documents/Repos/UnrealEngine/UnrealEngine/Engine/Source/ThirdParty/Unix/LibCxx/lib/Unix/x86_64-unknown-linux-gnu/libc++.a -L/home/igor/Documents/Repos/UnrealEngine/UnrealEngine/Engine/Source/ThirdParty/Unix/LibCxx/lib/Unix/x86_64-unknown-linux-gnu/libc++abi.a -lm -lc -lgcc_s -lgcc
" cmake ../../Repos/grpc -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/igor/Documents/Build/grpc/install -DCMAKE_C_COMPILER=/home/igor/Documents/Repos/UnrealEngine/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v21_clang-15.0.1-centos7/x86_64-unknown-linux-gnu/bin/clang -DCMAKE_CXX_COMPILER=/home/igor/Documents/Repos/UnrealEngine/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v21_clang-15.0.1-centos7/x86_64-unknown-linux-gnu/bin/clang++ -DgRPC_SSL_PROVIDER=package -DOPENSSL_ROOT_DIR=/home/igor/Documents/Repos/openssl_1_1_1n

be ready to edit some grpc headers macro, wrap protobuf headers to undef UE macros, recompile abseil with different function calls (absent in UE environment), download make ssl with the same version as in UE and rebuild grpc with this.

also this article clarifies UE Linux building process .

2 Likes