我一直试图在ARM Cortex A8 (Linux)上交叉编译Squid3.5.7。
我从http://www.squid-cache.org/Versions/v3/3.5/下载的
我有arm-linux-gnueabi-gcc和arm-linux-gnueabi-g++。
tar -zxvf squid-3.5.7.tar.gz
cd squid-3.5.7
./configure --prefix=/usr/local/squid在./配置-前缀=/usr/local/squid之后,我有一个Makefile:http://wklej.se/makefile
make all
make install接下来,我将文件夹/usr/local/squid和~/squid-3.5.7复制到SD卡。
当我尝试打开./squid -z从SD卡板上的手臂,我有问题:
root@am335x:/# ls
bin etc lib mnt srv usr
boot findHelp linuxrc proc sys var
dev home media sbin tmp
root@am335x:/media/mmcblk0/squid/sbin# ls
squid
root@am335x:/media/mmcblk0/squid/sbin# ./squid -z
./squid: line 20: syntax error: ")" unexpected
root@am335x:/media/mmcblk0/squid/sbin# ./squid
./squid: line 20: syntax error: ")" unexpected
root@am335x:/media/mmcblk0/squid/sbin#我不知道该怎么办
发布于 2015-08-13 13:06:41
您实际上并不是交叉编译;要进行交叉编译,您需要告诉./configure您的目标体系结构:
./configure --prefix=/usr/local --host=arm-linux-gnueabi然后,您应该获得使用arm-linux-gnueabi-gcc的Makefiles,以及适合您的ARM设备的squid二进制文件。(当然,假设您拥有所有必要的库。)
发布于 2015-09-14 15:33:36
您可以手动编辑configure.ac文件,查找原子部分,并替换行
AC_RUN_IFELSE([AC_LANG_PROGRAM([[使用
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[然后,您需要运行bootstrap.sh重新创建配置脚本。
这应该允许您进行配置,但是编译/链接可能会失败,因为您的工具链实际上可能不支持__sync_xxx调用。在我的情况下,libatomic.so不包含这些调用。然后,我不得不手动编辑配置脚本,以始终响应原子检查的“否”:
squid_cv_gnu_atomics=yes至
squid_cv_gnu_atomics=nohttps://unix.stackexchange.com/questions/222991
复制相似问题