0

cmake と、ここからダウンロードしたプリコンパイル済みの linaro ツールチェーンを使用して、raspberrypi2 用にクロス コンパイルしたい: git clone https://github.com/raspberrypi/tools

プロジェクトで cmake を実行しようとすると、次のエラーが発生します。

/myhome/libs/raspberry/tools/arm-bcm2708/gcc-linaro-arm-linux-
gnueabihf-raspbian-x64//bin/arm-linux-gnueabihf-gcc 
--sysroot=/myhome/libs/raspberry/tools/
arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/libc/ 
CMakeFiles/cmTC_9fb02.dir/testCCompiler.c.o -o cmTC_9fb02 -rdynamic


 /myhome/libs/raspberry/tools/arm-bcm2708/gcc-linaro-arm-linux-
gnueabihf-raspbian-x64/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../..
/../../arm-linux-gnueabihf/bin/ld:   cannot find crt1.o: 
No such file or directory

このファイルは、次のディレクトリにあります。

 /myhome/libs/raspberry/tools/arm-bcm2708/gcc-linaro-arm-
 linux-gnueabihf-raspbian-x64/arm-linux-gnueabihf/libc/
 usr/lib/arm-linux-gnueabihf

私のcmakeツールチェーンファイルは次のようになります

 set(CMAKE_SYSROOT "/myhome/libs/raspberry/sysroot/")
 set(tools "/myhome/libs/raspberry/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/")
 set(CMAKE_C_COMPILER "${tools}/bin/arm-linux-gnueabihf-gcc")
 set(CMAKE_CXX_COMPILER "${tools}/bin/arm-linux-gnueabihf-g++")

 set(CMAKE_EXPORT_COMPILE_COMMANDS=ON)
 set(CMAKE_FIND_ROOT_PATH "${CMAKE_SYSROOT}")
 set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
 set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
 set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
 set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)

sysroot ディレクトリは、ラズベリー イメージをマウントした場所です。これがラズベリー イメージのルートなのか、linaro ツール チェーンへのパスなのか、少し混乱しています。

ご協力いただきありがとうございます

4

1 に答える 1

0

わかりました、問題はそれでした

  set(CMAKE_SYSROOT "/myhome/libs/raspberry/sysroot/")

jessieイメージをこのディレクトリにマウントしたため、空のディレクトリでしたが、再起動後、マウントはこのディレクトリにありませんでした。

于 2017-02-24T19:57:01.273 に答える