【发布时间】:2020-07-08 04:05:28
【问题描述】:
我已经为 QNX 7 (ARM) 平台交叉编译了 gRPC (v1.27.3)。我正在使用我们系统已经可用的 protobuf (QNX ARM v3.11.4)。
我使用以下 cmake 命令构建 gRPC 以进行编译过程
cmake -DCMAKE_CROSSCOMPILING=1 -DgRPC_BUILD_TESTS=OFF -DgRPC_PROTOBUF_PROVIDER=package -DgRPC_SSL_PROVIDER=package -DgRPC_ZLIB_PROVIDER=package -DOPENSSL_CRYPTO_LIBRARY=$QNX_TARGET/aarch64le/usr/lib/libcrypto.a -DOPENSSL_SSL_LIBRARY=$TARGET/aarch64le/usr/lib/libssl.a -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=/tmp/qnxarm/toolchain.cmake -DCMAKE_INSTALL_PREFIX=/tmp/qnxarm/inst ../..
make plugins
make -j4
sudo make install
编译后,我可以看到/tmp/qnxarm/inst 文件夹中的二进制文件。
我将这些二进制文件复制到我们的代码中以编译适用于 QNX 的应用程序。
编译时遇到这个问题:
<local_directory>/grpc/aarch64/qnx/bin/grpc_cpp_plugin: program not found or is not executable
Please specify a program using absolute path or make sure the program is available in your PATH system variable
--grpc_out: protoc-gen-grpc: Plugin failed with status code 1.
lib/qmonitor/proto/CMakeFiles/QMonitorProto.dir/build.make:105: recipe for target 'lib/qmonitor/proto/QAicMonitorInternal.grpc.pb.cc' failed
make[2]: *** [lib/qmonitor/proto/QAicMonitorInternal.grpc.pb.cc] Error 1
请帮助我知道什么是错的?或者应该怎么做才能解决这个问题。
是否需要在lib文件夹下生成的gRPCTargets.cmake文件中添加PATH?
【问题讨论】: