오징어 크로스 편집

오징어 크로스 편집

저는 ARM Cortex A8(Linux)에서 Squid 3.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

./configure --prefix=/usr/local/squid 후에 다음 Makefile이 있습니다.http://wklej.se/makefile

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#

어떻게 해야할지 모르겠습니다:/

답변1

실제로 크로스 컴파일하는 것이 아닙니다. 크로스 컴파일하려면 ./configure대상 아키텍처를 알아야 합니다 .

./configure --prefix=/usr/local --host=arm-linux-gnueabi

그런 다음 사용된 Makefile 과 ARM 장치에 적합한 arm-linux-gnueabi-gcc결과 바이너리를 가져와야 합니다. squid(물론 필요한 라이브러리가 모두 있다고 가정합니다.)

답변2

구성.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=no

관련 정보