2013-08-23 2 views
4

Я перекрестно скомпилирую с помощью инструментальной цепочки CodeSourcery для руки (arm-none-linux-gnueabi). Я использую -isysroot для указания в папке /usr/include в папке rootfs, но при компиляции возникают проблемы. Я проверил, что папка include доступна.gcc с -isysroot создает включающий путь, начинающийся с равенства знака «=», и скомпилировать сбой

Ниже приведен вызов gcc и выход. Некоторые из результатов были удалены, потому что я не думаю, что это актуально.

Препроцессор имеет правильный путь включения, за исключением символа «=», который начинается с него, и указывает, что путь не существует. Затем он не может найти файлы заголовков.

Как это сделать?

[email protected]:~/Projects/button/Debug$ arm-none-linux-gnueabi-gcc -isysroot=/home/willem/Projects/rootfs -nostdinc -I=/usr/include -O0 -g3 -Wall -c -fmessage-length=0 -v -o src/smd/button/button.o ../src/smd/button/button.c -H 
Using built-in specs. 
Target: arm-none-linux-gnueabi 
Configured with: [ ... stuff omitted ... ] 
Thread model: posix 
gcc version 4.4.1 (Sourcery G++ Lite 2010q1-202) 
COLLECT_GCC_OPTIONS='-isysroot=/home/willem/Projects/rootfs' '-nostdinc' '-I' '=/usr/include' '-O0' '-g3' '-Wall' '-c' '-fmessage-length=0' '-v' '-o' 'src/smd/button/button.o' '-H' '-march=armv5te' '-funwind-tables' 
/home/willem/Tools/CodeSourcery/Sourcery_G++_Lite/bin/../libexec/gcc/arm-none-linux-gnueabi/4.4.1/cc1 -quiet -nostdinc -v -I =/usr/include -iprefix /home/willem/Tools/CodeSourcery/Sourcery_G++_Lite/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.1/ -isysroot /home/willem/Tools/CodeSourcery/Sourcery_G++_Lite/bin/../arm-none-linux-gnueabi/libc -dD -H -isysroot=/home/willem/Projects/rootfs ../src/smd/button/button.c -quiet -dumpbase button.c -march=armv5te -auxbase-strip src/smd/button/button.o -g3 -O0 -Wall -version -fmessage-length=0 -funwind-tables -o /tmp/ccWnd3Xk.s 
ignoring nonexistent directory "=/home/willem/Projects/rootfs/usr/include" 
#include "..." search starts here: 
#include <...> search starts here: 
End of search list. 
GNU C (Sourcery G++ Lite 2010q1-202) version 4.4.1 (arm-none-linux-gnueabi) 
    compiled by GNU C version 4.3.2, GMP version 4.3.1, MPFR version 2.4.2. 
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 
Compiler executable checksum: 250bf78701f747da89e730786c466148 
. ../src/smd/button/button.h 
../src/smd/button/button.c:2: error: no include path in which to search for pthread.h 
[ ... etc. ... ] 

Спасибо!

W

ответ

5

Ответ в том, что вариант -isysroot не нуждается/хотите "=" в спецификации пути, поэтому правильная команда является:

arm-none-linux-gnueabi-gcc -isysroot /home/willem/Projects/rootfs -nostdinc -I=/usr/include -O0 -g3 -Wall -c -fmessage-length=0 -v -o src/smd/button/button.o ../src/smd/button/button.c -H 

Приветствия,

W

Смежные вопросы