아래 명령을 사용하는 ChromeOS에서 GCC 컴파일러를 활성화하는 방법을 보여주는 이 튜토리얼 을 따랐습니다 .
sudo /usr/share/vboot/bin/make_dev_ssd.sh --remove_rootfs_verification --partitions 2
sudo mount -i -o remount,exec /home/chronos/user/
export C_INCLUDE_PATH=~/Toolchain/usr/include/
export LD_LIBRARY_PATH=~/Toolchain/usr/lib:~/Toolchain/usr/lib/binutils/armv7a-hardfloat-linux-gnueabi/2.25.1/
export PATH=$PATH:~/Toolchain/usr/armv7a-hardfloat-linux-gnueabi/gcc-bin/4.9.3/:~/Toolchain/usr/armv7a-hardfloat-linux-gnueabi/binutils-bin/2.25.1/
sudo sed -i 's/\/usr/\/home\/chronos\/user\/Toolchain\/usr/g' ~/Toolchain/usr/lib/libc.so
일단 실행되면 쉘 인스턴스가 종료 될 때까지 바로 소스 파일을 컴파일 할 수 있습니다. 나중에 쉘로 돌아 가면 소스 컴파일 시도가 모두 ./configure
실패합니다.
인스턴스가 종료 된 후 내 보낸 변수가 손실되는 것으로 의심되었습니다. 이전과 똑같은 명령을 구현하려고 시도했지만 컴파일 기능이 돌이킬 수없는 것처럼 보입니다.
config.log
스트림은 다음과 같은 오류를 제공합니다 :
configure:3378: checking whether the C compiler works
configure:3400: gcc conftest.c >&5
/home/chronos/user/Toolchain/usr/armv7a-hardfloat-linux-gnueabi/binutils-bin/2.25.1/ld: cannot find /home/chronos/user/Toolchain/home/chronos/user/Toolchain/home/chronos/user/Toolchain/home/chronos/user/Toolchain/home/chronos/user/Toolchain/home/chronos/user/Toolchain/home/chronos/user/Toolchain/usr/lib/libc_nonshared.a
collect2: error: ld returned 1 exit status
configure:3404: $? = 1
configure:3442: result: no
정말 특이한 일이 경로에 발생합니다 ...
cannot find /home/chronos/user/Toolchain/home/chronos/user/Toolchain/home/chronos/user/Toolchain/home/chronos/user/Toolchain/home/chronos/user/Toolchain/home/chronos/user/Toolchain/home/chronos/user/Toolchain/usr/lib/libc_nonshared.a
이 문제를 해결하기 위해 Linux에 대한 제한된 지식을 다 쓴 것 같습니다. 무슨 일이 일어나고 있는지에 대한 통찰력을 제공 할 수있는 사람이 있습니까?
문제는 sed
이런 식으로 반복적으로 사용할 때 공유 객체 파일에 계속 추가된다는 것 ~/Toolchain/usr/lib/libc.so
입니다. 따라서 첫 번째 실행 후 파일 경로가 손상됩니다.
경로가 손상된 경우 파일로 이동하여의 내용을 libc.so
다음과 같이 수동으로 변경하십시오 .
/* GNU ld script
Use the shared library, but some functions are only in
the static library, so try that secondarily. */
OUTPUT_FORMAT(elf32-littlearm)
GROUP ( /lib/libc.so.6 /home/chronos/user/Toolchain/usr/lib/libc_nonshared.a AS_NEEDED ( /lib/ld-linux-armhf.so.3 ) )
쉘이 종료되었을 때 문제는, 당신이 컴파일 유지하고자하는 경우 반환 할 후에는 다시 실행해야하는 것이 중요합니다, 인 export
이 이후 플래그를 않습니다 손실됩니다. 쉘 초기화시 플래그를 설정하는보다 영구적 인 해결책을 찾을 때까지, 즉 ~/.bashrc
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다