Кросс-компиляция Squid

Я пытался скомпилировать Squid 3.5.7 на ARM Cortex A8 (Linux).
Я скачал это с 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
make all
make install

Затем я копирую папки / usr / local / squid и ~ / squid-3.5.7 на SD-карту.
Когда я пытаюсь открыть ./squid -z с SD-карты на плате с ARM, у меня возникает проблема:

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#

Я не знаю, что делать: /

1

Решение

Двоичный файл, который вы создали, создан для архитектуры вашего ПК. Чтобы собрать кальмара для руки, следуйте приведенным ниже инструкциям.

Конфигурация пытается запустить тест, который не будет выполнен, если вы используете кросс-компилятор, поэтому добавьте файл кэша, чтобы переопределить эти тесты.

Например, создайте файл кеша squid.cache со строкой, показанной ниже

squid_cv_gnu_atomics=no

Экспортируйте переменную BUILDCXX, необходимую для компиляции squid

export BUILDCXX=g++

Убедитесь, что вы экспортировали путь набора инструментов в переменную пути ($ PATH)

export PATH=<TOOLCHAIN_PATH>:$PATH

Затем настройте squid, запустив configure, как показано ниже

./configure --host=arm-linux-gnueabi --cache-file=squid.cache --prefix=<install/dir>

Наконец скомпилируйте squid, запустив make

make

Затем установите двоичные файлы, используя make install

make install
2

Другие решения


По вопросам рекламы [email protected]