日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

crt1.o: No such file or directory

 mrjbydd 2013-09-11
635人閱讀 評論(0) 收藏 舉報(bào)
  1. crt1.o: No such file or directory/opt/bin/../lib/gcc/arm-none-linux-gnueabi/4.7.2/../../../../arm-none-linux-gnueabi/bin/ld: cannot find crti.o: No such file or directorycollect2: error: ld returned 1 exit statusmake: *** [busybox_unstripped] Error 1  


         我在實(shí)際開發(fā)一個(gè)項(xiàng)目中遇到了這個(gè)錯(cuò)誤,花了我5天時(shí)間才發(fā)現(xiàn)問題并解決。出來混的 ,遲早都是要還的。最開始沒有想到去理解編譯器的原理,都想到直接圖方便用了SBC的集成交叉編譯工具鏈,在實(shí)際使用過程中遇到了這個(gè)問題。當(dāng)時(shí)也沒有去 理解庫加載編和執(zhí)行過程中庫加載的區(qū)別。即LD_LIBRARY和LIBRARY的去區(qū)別。后來才發(fā)現(xiàn)一個(gè)是運(yùn)行加載,一個(gè)是編譯加載,我們設(shè)置環(huán)境變量 應(yīng)該設(shè)置的為LD_LIBRARY。
出現(xiàn)這個(gè)錯(cuò)誤,還有一種可能性是缺少庫,但是出現(xiàn)這種問題,一般解決起來都容易。但是像這種交叉編譯器放得路徑不對的問題就很麻煩了。通過arm-none-linux-gnueabi-gcc -v這個(gè)命令,可以看到:


  1. Using built-in specs.  
  2. COLLECT_GCC=arm-none-linux-gnueabi-gcc  
  3. COLLECT_LTO_WRAPPER=/opt/bin/../libexec/gcc/arm-none-linux-gnueabi/4.7.2/lto-wrapper  
  4. Target: arm-none-linux-gnueabi  
  5. Configured with: /scratch/jbrown/arm-linux/src/gcc-4.7-2012.09/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --enable-extra-sgxxlite-multilibs --with-arch=armv5te --with-gnu-as --with-gnu-ld --with-specs='%{save-temps: -fverbose-asm} %{funwind-tables|fno-unwind-tables|mabi=*|ffreestanding|nostdlib:;:-funwind-tables} -D__CS_SOURCERYGXX_MAJ__=2012 -D__CS_SOURCERYGXX_MIN__=9 -D__CS_SOURCERYGXX_REV__=64 %{O2:%{!fno-remove-local-statics: -fremove-local-statics}} %{O*:%{O|O0|O1|O2|Os:;:%{!fno-remove-local-statics: -fremove-local-statics}}}' --enable-languages=c,c++ --enable-shared --enable-lto --enable-symvers=gnu --enable-__cxa_atexit --with-pkgversion='Sourcery CodeBench Lite 2012.09-64' --with-bugurl=https://support./GNUToolchain/ --disable-nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc --with-build-sysroot=/scratch/jbrown/arm-linux/install/arm-none-linux-gnueabi/libc --with-gmp=/scratch/jbrown/arm-linux/obj/pkg-2012.09-64-arm-none-linux-gnueabi/arm-2012.09-64-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --with-mpfr=/scratch/jbrown/arm-linux/obj/pkg-2012.09-64-arm-none-linux-gnueabi/arm-2012.09-64-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --with-mpc=/scratch/jbrown/arm-linux/obj/pkg-2012.09-64-arm-none-linux-gnueabi/arm-2012.09-64-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --with-ppl=/scratch/jbrown/arm-linux/obj/pkg-2012.09-64-arm-none-linux-gnueabi/arm-2012.09-64-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-cloog=/scratch/jbrown/arm-linux/obj/pkg-2012.09-64-arm-none-linux-gnueabi/arm-2012.09-64-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --with-libelf=/scratch/jbrown/arm-linux/obj/pkg-2012.09-64-arm-none-linux-gnueabi/arm-2012.09-64-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --disable-libgomp --disable-libitm --enable-poison-system-directories --with-build-time-tools=/scratch/jbrown/arm-linux/install/arm-none-linux-gnueabi/bin --with-build-time-tools=/scratch/jbrown/arm-linux/install/arm-none-linux-gnueabi/bin  
  6. Thread model: posix  
  7. gcc version 4.7.2 (Sourcery CodeBench Lite 2012.09-64)  



在上面可以找到gcc設(shè)置的安裝路徑為:
--prefix=/opt/codesourery
所以交叉編譯器得放在/opt/codesourery這個(gè)位置上。后面為庫放得位置。注意編譯busybox的時(shí)候,應(yīng)該設(shè)置sysroot為紅色部分的代碼。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多