【问题标题】:Not able to cross compile gRPC for QNX platform using aarch64-unknown-nto-qnx7.0.0-g++-5.4.0 compiler无法使用 aarch64-unknown-nto-qnx7.0.0-g++-5.4.0 编译器为 QNX 平台交叉编译 gRPC
【发布时间】:2020-10-04 16:53:01
【问题描述】:

我正在尝试使用 QNX aarch64-unknown-nto-qnx7.0.0-g++-5.4.0 编译器交叉编译 gRPC 代码。 我正在使用 toolchain.cmake 文件进行编译。

工具链.cmake:

SET(CMAKE_SYSTEM_NAME QNX)
SET(CMAKE_SYSTEM_PROCESSOR arm)
set(CMAKE_CROSSCOMPILING 1)
set(CMAKE_SYSROOT "$ENV{TOOLCHAIN_PATH}")
set(CMAKE_C_COMPILER "$ENV{TOOLCHAIN_PATH}/usr/bin/aarch64-unknown-nto-qnx7.0.0-gcc-5.4.0")
set(CMAKE_CXX_COMPILER "$ENV{TOOLCHAIN_PATH}/usr/bin/aarch64-unknown-nto-qnx7.0.0-g++-5.4.0")
set(CMAKE_CXX_FLAGS "-Vgcc_ntoaarch64 -O2 -Wc,-Wall -DBUILDENV_qss -g -Os -Wall -march=armv8-a -mcpu=cortex-a57 -mtune=cortex-a57 \
        -fstack-protector-strong -DNDEBUG -DFMT_HEADER_ONLY -EL -DVARIANT_le -std=c++11 -stdlib=libstdc++ -lang-c++ \
        -I . \
        -I$ENV{TOOLCHAIN_PATH}/usr/include \
        -I$ENV{TOOLCHAIN_PATH}/usr/include/WF \
        -I$ENV{TOOLCHAIN_PATH}/usr/include/KHR \
        -I$ENV{INSTALL_ROOT_nto}/usr/include \
        -Wl,-L$ENV{INSTALL_ROOT_nto}/aarch64le/lib \
        -Wl,-L$ENV{INSTALL_ROOT_nto}/aarch64le/usr/lib \
        -Wl,-L$ENV{TOOLCHAIN_PATH}/aarch64le/lib \
        -Wl,-L$ENV{TOOLCHAIN_PATH}/aarch64le/usr/lib")

我收到以下错误,即使我使用了 -std=c++11(gnu++11 也尝试过):

error: #error "C++ versions less than C++11 are not supported."
error: 'constexpr' does not name a type
error: '__to_gcc_order' is not a member of 'std::__1::__gcc_atomic'
error: 'NormalizeLogSeverity' is not a member of 'absl'

请帮我解决这个问题。

【问题讨论】:

  • 我会从#error 开始:测试什么#defines 或类似的东西来生成它,为什么你的g++ 没有通过检查?其他可能是因为选择了错误的代码版本——我觉得 __gcc_atomic 结构很可疑——但否则你可能需要自己调查和解决它们。
  • 那是哪个版本的 grpc?我在 GitHub 的 1.29.0 中没有看到该错误文本。
  • 我使用的是 grpc 版本 1.27.3
  • 谢谢。我仍然没有在 1.27.3 中看到 #error。请问它来自什么文件和行号?
  • 刚才我尝试使用 1.29.0 版本。还是一样的错误。

标签: c++ c++11 qnx qnx-neutrino


【解决方案1】:

设置(CMAKE_CXX_STANDARD 11) 要么 -std=c++11

【讨论】:

  • 感谢 pi1ot,但我已经尝试过了。但我仍然面临这个问题。
【解决方案2】:

存在一些许可问题,导致我无法构建代码。

更新许可证后,此问题得到解决。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-22
    • 1970-01-01
    • 2011-08-24
    • 1970-01-01
    • 2019-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多