1、出现Can’t exec “autopoint”: No such file or directory at /usr/share/autoconf/Autom4te/FileUtils.pm line 345.错误
(1)错误日志:
[15:02:43:900]autoreconf: Entering directory `.'
[15:02:43:918]autoreconf: running: autopoint --force
[15:02:43:918]Can't exec "autopoint": No such file or directory at /usr/share/autoconf/Autom4te/FileUtils.pm line 345.
[15:02:43:918]autoreconf: failed to run autopoint: No such file or directory
[15:02:43:919]autoreconf: autopoint is needed because this package uses Gettext
(2)解决办法:
sudo apt-get install autopoint
sudo apt-get install gettext
安装这两个软件之后问题就可以得到解决。
2、出现 /usr/lib/gcc-cross/aarch64-linux-gnu/9/…/…/…/…/aarch64-linux-gnu/bin/ld: …/libssl.so: undefined reference to `pthread_rwlock_rdlock 错误
(1)错误日志:
[15:18:10:526]make[2]: Entering directory '/home/zhujianming/work/Ambare_plat/develop/iray_ipc/3rdparty/openssl-1.0.2p/apps'
[15:18:10:592]/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: ../libssl.so: undefined reference to `pthread_rwlock_rdlock'
[15:18:10:593]/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: ../libssl.so: undefined reference to `pthread_rwlock_init'
[15:18:10:594]/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: ../libssl.so: undefined reference to `pthread_rwlock_destroy'
[15:18:10:594]/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: ../libssl.so: undefined reference to `pthread_rwlock_wrlock'
[15:18:10:596]/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: ../libssl.so: undefined reference to `pthread_rwlock_unlock'
(2)解决办法:
- 首先需要排除是否线程库的问题;
- 由于编译器的版本兼容性问题,可能导致有些GCC需要把makefile的-lpthread都改为-pthread就可以了。具体可以参考make时提示pthread的错误
3、出现 aarch64-linux-gnu/bin/ld: cannot find -lssl 错误
(1)错误日志:
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: cannot find -lssl
/usr/lib/gcc-cross/aarch64-linux-gnu/9/../../../../aarch64-linux-gnu/bin/ld: cannot find -lcrypto
(2)解决办法:
- 首先查找编译器连接的库文件目录
使用如下命令:
/opt/linaro-aarch64-2020.09-gcc10.2-linux5.4/aarch64-linux-gnu/bin/ld --verbose | grep SEARCH_DIR
其中: /opt/linaro-aarch64-2020.09-gcc10.2-linux5.4/aarch64-linux-gnu/bin/ld
是本地的编译器的路径,查找结果如下:
SEARCH_DIR("=/development/abe-toolchain-build/abe.build/ambarella/builds/aarch64-2020.09/destdir/x86_64-unknown-linux-gnu/aarch64-linux-gnu/lib64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/development/abe-toolchain-build/abe.build/ambarella/builds/aarch64-2020.09/destdir/x86_64-unknown-linux-gnu/aarch64-linux-gnu/lib"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib");
比如我要按照到/usr/lib/gcc-cross/aarch64-linux-gnu/9,那么–prefix=/usr/lib/gcc-cross/aarch64-linux-gnu/9,执行如下操作即可:
git clone https://github.com/openssl/openssl.git
cd openssl
git checkout OpenSSL_1_0_2-stable
./config --prefix=/usr/lib/gcc-cross/aarch64-linux-gnu/9 --cross-compile-prefix=aarch64-linux-gnu- no-asm shared
sed -i "s/-m64//g" Makefile
make
sudo make install
4、出现 make: aarch64-linux-gnu-g++: Command not found 错误
(1)错误日志:
[15:53:20:944]INFO: will now build "jsonapp"...
[15:53:20:945]aarch64-linux-gnu-g++ -Wall -march=armv8-a+crypto -mcpu=cortex-a53+crypto -g -fPIC -O2 -I./Include -Wall -Os -D_REENTRANT -fPIC -c -o src/lib_json/json_ext.o src/lib_json/json_ext.cpp
[15:53:20:945]make: aarch64-linux-gnu-g++: Command not found
[15:53:20:945]make: *** [Makefile:29: src/lib_json/json_ext.o] Error 127
[15:53:20:945]Error, failed to build "jsonapp": 2
[15:53:20:947]Error, build function for "jsonapp" has failed: 2
(2)解决办法
- 出现这个问题,首先排除是否安装了工具链;
- 如果工具链安装了,那么可能是环境变量设置的问题,环境变量设置的命令如下:
export PATH=$PATH:/opt/linaro-aarch64-2020.09-gcc10.2-linux5.4/bin/
其中/opt/linaro-aarch64-2020.09-gcc10.2-linux5.4/bin/是工具链的安装位置。
5、出现 Error: “Invalid configuration aarch64-linux-gnu': machine
aarch64’ not recognized”错误
(1)错误日志
checking build system type... Invalid configuration `aarch64-linux': machine `aarch64' not recognized
(2)解决办法
- 下载最新的配置文件
wget -O config.guess 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD'
wget -O config.sub 'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD'
- 将新的配置文件替换原来第三库的config.guess和config.sub即可。