首页 > 解决方案 > 使用 qnx.cmake 显示错误“CMAKE_C_COMPILER 不是现有编译器工具的完整路径。”

问题描述

我正在使用带有 QNX Momentics 的 CMake。为此,我执行了命令

cmake -DCMAKE_TOOLCHAIN_FILE=/my-path/qnx.cmake

在向我显示以下错误的终端上:

ERROR:-
"-- The C compiler identification is unknown
CMake Error at CMakeLists.txt:7 (project):
  The CMAKE_C_COMPILER:
    /home/mobis/MTCI/Test/host/linux/x86_64/usr/bin/ntox86_64-gcc
  is not a full path to an existing compiler tool.
  Tell CMake where to find the compiler by setting either the environment
  variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
  the compiler, or to the compiler name if it is in the PATH."
  1. 我已经在我的本地电脑中检查了ntox86_64-gcc编译器,它存在于/hom/Test/host/linux/x86_64/usr/bin位置。

  2. 我试图通过在命令行中使用 CMake 提供编译器路径来构建,但它显示相同的错误。

  3. 即使出现同样的错误,也尝试了以下解决方案:

    CMAKE_C_COMPILER 不是现有编译器工具的完整路径

    export CC=/usr/bin/gcc
    export CXX=/usr/bin/g++
    

请在下面找到我的qnx.cmake

set(CMAKE_SYSTEM_NAME QNX)
set(CMAKE_HOST_SYSTEM_NAME QNX)
set(CMAKE_SYSTEM_VERSION 7.0.0)
set(arch ntox86_64)
set(QNX_PROCESSOR x86_64)
SET( TOOLCHAIN QNX )

#Check environment variables
if ("$ENV{QNX_HOST}" STREQUAL "")
    message(FATAL_ERROR "QNX_HOST environment variable not set")
endif()

if ("$ENV{QNX_TARGET}" STREQUAL "")
    message(FATAL_ERROR "QNX_TARGET environment variable not set")
endif()

set(QNX_HOST "$ENV{QNX_HOST}")
set(QNX_TARGET "$ENV{QNX_TARGET}")
set(CMAKE_C_COMPILER "${QNX_HOST}/usr/bin/${arch}-gcc")
set(CMAKE_CXX_COMPILER "${QNX_HOST}/usr/bin/nto${QCC_NTOARCH}-g++")


set(CMAKE_C_FLAGS_DEBUG "-g")
set(CMAKE_C_FLAGS_MINSIZEREL "-Os -DNDEBUG")
set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG")
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g")
set(CMAKE_CXX_FLAGS_DEBUG "-g -D_DEBUG")
set(CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG")
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g")

set(CMAKE_FIND_ROOT_PATH "${QNX_TARGET}")
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

请在下面找到我的CMakeLists.txt

cmake_minimum_required(VERSION 3.14.2)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(CMAKE_BUILD_TYPE Release)
project(Test VERSION 1.0     DESCRIPTION "CoreLSP FOlder structure     project"   LANGUAGES C)
set(SRCS 
   main.c
   printing.c
   ) 
add_executable(Test ${SRCS})

预期的:

标签: ccmakeqnx

解决方案


推荐阅读