C++ Squid交叉编译
我一直在尝试在ARM Cortex A8(Linux)上交叉编译Squid 3.5.7C++ Squid交叉编译,c++,linux,gcc,cross-compiling,squid,C++,Linux,Gcc,Cross Compiling,Squid,我一直在尝试在ARM Cortex A8(Linux)上交叉编译Squid 3.5.7 我是从下载的 我有armlinux-gnueabi-gcc和arm-linux-gnueabi-g++ tar -zxvf squid-3.5.7.tar.gz cd squid-3.5.7 ./configure --prefix=/usr/local/squid make all make install 接下来,我将文件夹/usr/local/squid和~/squid-3.5.7复制到SD卡。 当我
我是从
下载的 我有armlinux-gnueabi-gcc和arm-linux-gnueabi-g++
tar -zxvf squid-3.5.7.tar.gz
cd squid-3.5.7
./configure --prefix=/usr/local/squid
make all
make install
接下来,我将文件夹/usr/local/squid和~/squid-3.5.7复制到SD卡。
当我尝试用ARM打开SD卡上的/squid-z时,我遇到了问题:
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#
我不知道该怎么办:/您构建的二进制文件是为您的PC架构而构建的。要为arm构建squid,请遵循以下说明 配置正在尝试运行一个测试,如果使用交叉编译器,该测试将失败,因此请添加一个缓存文件以覆盖这些测试 例如,使用下面显示的行创建一个缓存文件squid.cache
squid_cv_gnu_atomics=no
./configure --host=arm-linux-gnueabi --cache-file=squid.cache --prefix=<install/dir>
导出编译squid所需的BUILDCXX变量
export BUILDCXX=g++
确保已将工具链路径导出到路径变量($path)
然后使用makeinstall安装二进制文件
make install
我认为您应该告诉配置,它必须使用arm linux gnueabi gcc,否则它将使用默认gcc。@Marco怎么做?只是为了确定,您是在arm cortex A8板上编译还是在标准PC上编译?我在哪里可以看到它?我想我没有很好地解释:你说你正在运行configure。。制作您在PC或arm cortex板上的什么位置运行configure and make?您能告诉我怎么做吗?我已经提到了上述所有步骤。在哪一步中,首先转到squid源目录,然后使用您喜欢的任何编辑器创建一个文件squid.cache,然后在该文件(squid.cache)中添加行squid\u cv\u gnu\u atomics=no,使用命令export BUILDCXX=g导出变量BUILDCXX++
make
make install