LINUX.ORG.RU

Ошибка при компиляции


0

1

Здравствуйте! Не могу скомпилить hello world. Использую готовый toolchain mipsel-linux (для PSP uClinux) Скачал готовый тулчейн, поместил в домашнюю директорию. Path прописал такой: export PATH=$PATH:/home/alex/staging_dir/usr/bin Компилить не захотело (видимо ещё надо что-то прописать но я уже не знаю что) Пожалуйста помогите решить проблему. Тулчейн: http://www.mediafire.com/?jur3onkiypb

root@Alex-Ubuntu:/home/alex/staging_dir# mipsel-linux-gcc -static -Wl,-elf2flt -fno-jump-tables hello.c -o hello

hello.c:1:19: error: stdio.h: No such file or directory

hello.c: In function 'main':

hello.c:5: warning: incompatible implicit declaration of built-in function 'printf'



Последнее исправление: FailOverFlow (всего исправлений: 3)

поместил в домашнюю директорию.

Тулчейн собран под конкретные пути, и просто переместить в другой каталог его нельзя. Сейчас он не находит include, потом не найдёт lib — пути к ним захардкодены при сборке.

Или положи тулчейн в тот каталог, в котором он должен лежать, или собери его сам в нужном каталоге, или же отредактируй specs (кто-нибудь другой расскажет, как именно, если это возможно).

gentoo_root ★★★★★
()

используй нормальные кросс-компиляторы :)

$ /opt/sgpp/bin/mips-linux-gnu-gcc -EL -muclibc -static -Wl,--strip-all hello.c
$ file a.out 
a.out: ELF 32-bit LSB executable, MIPS, MIPS32 rel2 version 1, statically linked, with unknown capability 0xf41 = 0x756e6700, with unknown capability 0x70100 = 0x1040000, stripped
$ stat -c%s a.out
12800
$ qemu-mipsel ./a.out 
hello, world!
$ _
arsi ★★★★★
()
Ответ на: комментарий от arsi

alex@Alex-Ubuntu:~/staging_dir$ strace -f mipsel-linux-gcc -static -Wl,-elf2flt -fno-jump-tables hello.c -o hello 2>&1 | grep stdio.h [pid 2453] read(3, «#include <stdio.h>\n \nmain()\n{\n »..., 62) = 62 [pid 2453] stat64(«/home/alex/staging_dir/usr/bin/../lib/gcc/mipsel-linux-uclibc/4.2.1/include/stdio.h.gch», 0xffc38ce0) = -1 ENOENT (No such file or directory) [pid 2453] open(«/home/alex/staging_dir/usr/bin/../lib/gcc/mipsel-linux-uclibc/4.2.1/include/stdio.h», O_RDONLY|O_NOCTTY) = -1 ENOENT (No such file or directory) [pid 2453] stat64(«/home/alex/staging_dir/usr/bin/../lib/gcc/mipsel-linux-uclibc/4.2.1/../../../../mipsel-linux-uclibc/include/stdio.h.gch», 0xffc38ce0) = -1 ENOENT (No such file or directory) [pid 2453] open(«/home/alex/staging_dir/usr/bin/../lib/gcc/mipsel-linux-uclibc/4.2.1/../../../../mipsel-linux-uclibc/include/stdio.h», O_RDONLY|O_NOCTTY) = -1 ENOENT (No such file or directory) [pid 2453] write(2, «stdio.h: No such file or directo»..., 34stdio.h: No such file or directory) = 34 Куда что скопировать? Я новенький в линуксе =) раньше всё в visual studio компилил там просто, а теперь нужно именно этот тулчейн :(

FailOverFlow
() автор топика
Ответ на: комментарий от FailOverFlow

/home/alex/staging_dir/usr/bin/../lib/gcc/mipsel-linux-uclibc/4.2.1/../../../../mipsel-linux-uclibc/include/stdio.h

Ответ на твой вопрос. То есть хидеры должены быть в /home/alex/staging_dir/usr/mipsel-linux-uclibc/include

А библиотеки, наверно, в

/home/alex/staging_dir/usr/mipsel-linux-uclibc/lib

Zorn
()
Ответ на: комментарий от FailOverFlow

до чего же кривой тулчейн…

mipsel-linux-uclibc-gcc -static -Wl,-elf2flt -I/home/alex/staging_dir/usr/include -nostartfiles /home/alex/usr/lib/crt{1,i}.o -fno-jump-tables hello.c -o hello
arsi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.