交叉编译GCC工具链找不到stdlib.h

时间:2020-07-27 10:05:31

标签: gcc cmake cross-compiling arm64 toolchain

我正在尝试使用aarch64 PC对 Jetson nano x86_64)进行交叉编译。我正在使用toolchain provided by nvidia(用于64位BSP的GCC工具链)。目前,我陷入无法找到stdlilb.h

的工具链中
In file included from <build dir path>/opt/ros/melodic/include/ros/time.h:53:0,
                 from <build dir path>/opt/ros/melodic/include/ros/ros.h:38,
                 from <build dir path>/src/test_cpp/src/listener.cpp:1:
<build dir path>/opt/ros/melodic/include/ros/platform.h:37:41: fatal error: stdlib.h: No such file or directory
#include <stdlib.h> // getenv, _dupenv_s
                                        ^
compilation terminated.

我的工具链在gcc-4.8.5-aarch64/install/目录中。 find -name stdlib.h -type f给了我

./gcc-4.8.5-aarch64/install/aarch64-unknown-linux-gnu/sysroot/usr/include/bits/stdlib.h
./gcc-4.8.5-aarch64/install/aarch64-unknown-linux-gnu/sysroot/usr/include/stdlib.h
./gcc-4.8.5-aarch64/install/aarch64-unknown-linux-gnu/include/c++/4.8.5/tr1/stdlib.h

为什么编译器找不到stdlib?如何显示给编译器?


PS 。我不想让这个问题不必要地冗长。如果需要,可以here in my question asked in nvidia forums

完整说明我要执行的操作和错误。

1 个答案:

答案 0 :(得分:0)

使用$filePath = 'long/path/to/file.ext' $sentMessage = yield $MadelineProto->messages->sendMedia([ 'peer' => '@channel', 'media' => [ '_' => 'inputMediaUploadedPhoto', 'file' => $filePath ], 'message' => 'this is a test massage', 'parse_mode' => 'Markdown' ]); 添加工具链包含目录可以解决问题

include_directories