LINUX.ORG.RU

GCC не видит хедеры библиотеки С

 , , ,


0

2

Пытаюсь собрать libflac под Msys. на команду :

CFLAGS=-O1 configure -mcpu=armv5t --with-ogg-includes=«$EPOCROOT\epoc32\include\tremor» --includedir=$EPOCROOT/epoc32/include/libc --host=arm-none-symbianelf --prefix=$EPOCROOT/epoc32 -includes=$EPOCROOT\epoc32\include\tremor получаю :

checking for ANSI C header files... no checking for sys/types.h... no checking for sys/stat.h... no checking for stdlib.h... no checking for string.h... no checking for memory.h... no checking for strings.h... no checking for inttypes.h... no checking for stdint.h... no checking for unistd.h... no

Нужно получить статическую библиотеку


Ответ на: комментарий от Gvidon

$EPOCROOT - переменная. Хранит в себе пути к Symbian SDK со всем добром и компилятору GCCE. В данный момент эквивалентна D:\Symbian\S60_5th_Edition_SDK_v1.0\epoc32

Если вопрос, зачем она здесь - я указал путь для поиска ANSI C header files

zanac1
() автор топика

configure ведь выдаёт: не могу найти sys/types.h, не могу найти string.h и т.п. Соответственно, найди их сам и замени параметр в "--includedir=директория" на директорию, в которой они находятся. Возможно, правильный вариант "--includedir=$EPOCROOT\epoc32\include\libc" или "--includedir=$EPOCROOT\epoc32\include".

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

--includedir - это куда будут запиханы файлы libflac

А для поиска системных файлов надо выставить CPPFLAGS

anonymous
()
Ответ на: комментарий от Gvidon

Задействовал. Вот лог из консоли :

checking for ANSI C header files... (cached) no checking whether arm-none-symbianelf-gcc and cc understand -c and -o together.. yes checking for inline... inline checking for variable-length arrays... (cached) yes checking for typeof syntax and keyword spelling... typeof checking for stdint.h... (cached) no checking for inttypes.h... (cached) no checking byteswap.h usability... no checking byteswap.h presence... no checking for byteswap.h... no checking sys/param.h usability... no checking sys/param.h presence... yes configure: WARNING: sys/param.h: present but cannot be compiled configure: WARNING: sys/param.h: check for missing prerequisite headers? configure: WARNING: sys/param.h: see the Autoconf documentation configure: WARNING: sys/param.h: section «Present But Cannot Be Compiled» configure: WARNING: sys/param.h: proceeding with the compiler's result configure: WARNING: ## -------------------------------- ## configure: WARNING: ## Report this to flac-dev@xiph.org ## configure: WARNING: ## -------------------------------- ## checking for sys/param.h... no checking termios.h usability... no checking termios.h presence... no checking for termios.h... no checking whether termios.h defines TIOCGWINSZ... no checking whether sys/ioctl.h defines TIOCGWINSZ... no

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

На этот раз какой строкой собирали?
Если что, я действительно ошибся, надо указывать директории по другому.

configure "CFLAGS=-O1" "CPPFLAGS=-I$EPOCROOT\epoc32\include\libc" ...

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

Собрал в эклипсе helloworld для симбиан с ключом --verbose Залил лог команд сборки на пастебин.

Собирать пока нечего. Пока настроил CPPFLAGS="-I$EPOCROOT/epoc32/include/libc -I$EPOCROOT/epoc32/include/variant/Symbian_OS.hrh -I$EPOCROOT/EPOC32/INCLUDE/GCCE/GCCE.h -I$EPOCROOT/epoc32/include/variant -Id:/program files/codesourcery/sourcery_codebench_lite_for_arm_symbianos/lib/gcc/arm-none-symbianelf/4.6.3/include"

Вы уверены, что надо CFLAGS, CPPFLAGS и прочие надо писать именно после configure?

У меня получился такой CPPFLAGS="-I$EPOCROOT/epoc32/include/libc -I$EPOCROOT/epoc32/include/variant/Symbian_OS.hrh -I$EPOCROOT/EPOC32/INCLUDE/GCCE/GCCE.h -I$EPOCROOT/epoc32/include/variant -Id:/program files/codesourcery/sourcery_codebench_lite_for_arm_symbianos/lib/gcc/arm-none-symbianelf/4.6.3/include"

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

После configure указывать тоже можно.

Как я вижу helloworld собирается с:

-I /Symbian/S60_5th_Edition_SDK_v1.0/epoc32/include/libc -I /Symbian/S60_5th_Edition_SDK_v1.0/epoc32/include -I /Symbian/S60_5th_Edition_SDK_v1.0/epoc32/include/variant -I d:/program files/codesourcery/sourcery_codebench_lite_for_arm_symbianos/lib/gcc/arm-none-symbianelf/4.6.3/include
Соответственно, почему бы их не попробовать?

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

вот configure :

configure --host=arm-none-symbianelf --prefix=$EPOCROOT/epoc32 --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --enable-extra-sgxxlite-multilibs --with-gnu-as --with-gnu-ld -enable-languages=c,c++ --enable-shared --enable-lto --disable-hosted-libstdcxx --with-bugurl=https://support.codesourcery.com/GNUToolchain/ --disable-nls --prefix=/opt/codesourcery --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm'

вот CPPFLAGS:

CPPFLAGS="-I$EPOCROOT/epoc32/include/libc -I$EPOCROOT/epoc32/include/variant/Symbian_OS.hrh -I$EPOCROOT/EPOC32/INCLUDE/GCCE/GCCE.h -I$EPOCROOT/epoc32/include/variant -Id:/program files/codesourcery/sourcery_codebench_lite_for_arm_symbianos/lib/gcc/arm-none-symbianelf/4.6.3/include"

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

На пастебин выложил свой конфиг

На

 export LIBS= -lusrt2_2 -ledll -leexe -llibgcc
Получил :
sh: export: `-lusrt2_2': not a valid identifier
sh: export: `-ledll': not a valid identifier
sh: export: `-leexe': not a valid identifier
sh: export: `-llibgcc': not a valid identifier

Если убрать

export LIBS
получаю configure: WARNING: cache variable acl_cv_path_LD contains a newline configure: WARNING: cache variable lt_cv_path_LD contains a newline configure: WARNING: cache variable lt_cv_path_LDCXX contains a newline

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

Намудрили с флагами (похоже взяли часть из них от configure для gcc).

Попробуйте для начала самую простую конфигурацию замутить.

export CPPFLAGS="-I$EPOCROOT/epoc32/include/libc -I$EPOCROOT/epoc32/include -I$EPOCROOT/epoc32/include/variant"
export CFLAGS="-O2"
configure --host=arm-none-symbianelf --prefix=$EPOCROOT/epoc32 --disable-ogg --disable-oggtest --disable-cpplibs --disable-xmms-plugin

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

На команду маке пишет:

Makefile:222: *** missing separator.  Stop.
Причина - пробел в строке был обработан как символ новой строки. В гугле советовали заключить строку в одиночные кавычки - не помогло. Ставил слеш перед пробелом - результат тот же.

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

Попробуйте так

configure CFLAGS="-O2" CPPFLAGS="-I$EPOCROOT/epoc32/include/libc -I$EPOCROOT/epoc32/include -I$EPOCROOT/epoc32/include/variant" --host=arm-none-symbianelf --prefix=$EPOCROOT/epoc32 --disable-ogg --disable-oggtest --disable-cpplibs --disable-xmms-plugin
Если всё равно не поможет, залейте Makefile на пастебин, хочу рассмотреть его.

Micky53
()
Ответ на: комментарий от zanac1

Ругается он на эту строчку

LD = d:/program
files/codesourcery/sourcery_codebench_lite_for_arm_symbianos/arm-none-symbianelf/bin/ld.exe
Первое, что приходит в голову добавить
export LD="d:/program files/codesourcery/sourcery_codebench_lite_for_arm_symbianos/arm-none-symbianelf/bin/ld.exe"

Micky53
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.