首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >鱿鱼交叉编译

鱿鱼交叉编译
EN

Unix & Linux用户
提问于 2015-08-13 12:12:00
回答 2查看 916关注 0票数 -1

我一直试图在ARM Cortex A8 (Linux)上交叉编译Squid3.5.7。

我从http://www.squid-cache.org/Versions/v3/3.5/下载的

我有arm-linux-gnueabi-gcc和arm-linux-gnueabi-g++。

代码语言:javascript
复制
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

代码语言:javascript
复制
make all
make install

接下来,我将文件夹/usr/local/squid和~/squid-3.5.7复制到SD卡。

当我尝试打开./squid -z从SD卡板上的手臂,我有问题:

代码语言:javascript
复制
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#

我不知道该怎么办

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2015-08-13 13:06:41

您实际上并不是交叉编译;要进行交叉编译,您需要告诉./configure您的目标体系结构:

代码语言:javascript
复制
./configure --prefix=/usr/local --host=arm-linux-gnueabi

然后,您应该获得使用arm-linux-gnueabi-gcc的Makefiles,以及适合您的ARM设备的squid二进制文件。(当然,假设您拥有所有必要的库。)

票数 1
EN

Unix & Linux用户

发布于 2015-09-14 15:33:36

您可以手动编辑configure.ac文件,查找原子部分,并替换行

代码语言:javascript
复制
AC_RUN_IFELSE([AC_LANG_PROGRAM([[

使用

代码语言:javascript
复制
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[

然后,您需要运行bootstrap.sh重新创建配置脚本。

这应该允许您进行配置,但是编译/链接可能会失败,因为您的工具链实际上可能不支持__sync_xxx调用。在我的情况下,libatomic.so不包含这些调用。然后,我不得不手动编辑配置脚本,以始终响应原子检查的“否”:

代码语言:javascript
复制
squid_cv_gnu_atomics=yes

代码语言:javascript
复制
squid_cv_gnu_atomics=no
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/222991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档