Я скомпилировал gcc 5.4.0 (make, make install в папку без root) и экспортировал его в машину пыльников того же базового дистрибутива. Однако, когда я пытаюсь составить hello world
на 2 машины, я получаю сообщение об ошибке для stdio.h
и каскадное cstdio
т.д.после компиляции gcc 5.4.0 какие папки заголовков для экспорта
для GCC я configure --prefix=/home/mybin --bindir=/home/mybin/bin --libdir=/home/mybin/lib
и т.д. для всех доступных папок, как в --help.
На машине компиляции gcc кажется, что исходная папка /home/tmp/gcc-5.4.0/libstdc++-v3/include
была установлена в папку --includedir=/home/mybin/include
со всеми вспомогательными каталогами.
Поиск stdio.h
на машине компиляции 5.4.0 Я получаю несколько папок, содержащих версию stdio.h
.
/home/tmp/gcc-5.4.0/libstdc++-v3/include/tr1/stdio.h
/home/tmp/gcc-5.4.0/libstdc++-v3/include/c_compatibility/stdio.h
/home/tmp/gcc-5.4.0/fixincludes/tests/base/rtldef/stdio.h
/home/tmp/gcc-5.4.0/fixincludes/tests/base/stdio.h
/home/tmp/gcc-5.4.0/libssp/ssp/stdio.h
/home/tmp/gcc-5.4.0/gcc/testsuite/gcc.dg/cpp/usr/include/stdio.h
и поиск из --prefix=/home/mybin/
возвращает
/home/mybin/lib/gcc/x86_64-unknown-linux-gnu/5.4.0/include/ssp/stdio.h
/home/mybin/include/c++/5.4.0/tr1/stdio.h
/home/mybin/include/c_compatibility/stdio.h
Так что я скопировал `` prefix =/дом/mybin/`папку на новую машину и пытались использовать
gcc -Wall -I/home/mybin/include/c_compatibility /home/myuser/test.c -o /home/myuser/hello
это дает
In file included from /home/myuser/test.c:3:0:
/home/mybin/include/c_compatibility/stdio.h:29:18: fatal error: cstdio: No such file or directory
, НО у меня есть
/home/mybin/include/c++/5.4.0/tr1/cstdio
/home/mybin/include/c++/5.4.0/cstdio
/home/mybin/include/c_std/cstdio
/home/mybin/include/c/cstdio
так обновлена
gcc -Wall -I/home/mybin/include/c_compatibility -I/home/mybin/include/c_std /home/myuser/test.c -o /home/myuser/hello
In file included from /home/mybin/include/bits/c++config.h:482:0,
from /home/mybin/include/c_std/cstdio:44,
from /home/mybin/include/c_compatibility/stdio.h:29,
from /home/myuser/test.c:3:
/home/mybin/include/bits/os_defines.h:39:22: fatal error: features.h: No such file or directory
compilation terminated.
НО у меня есть /home/mybin/include/c++/5.4.0/parallel/features.h
gcc -Wall -I/home/mybin/include/c_compatibility -I/home/mybin/include/c_std /home/myuser/test.c -o /home/myuser/hello
In file included from /home/mybin/include/bits/c++config.h:482:0,
from /home/mybin/include/c_std/cstdio:44,
from /home/mybin/include/c_compatibility/stdio.h:29,
from /home/myuser/test.c:3:
/home/mybin/include/bits/os_defines.h:39:22: fatal error: features.h: No such file or directory
compilation terminated.
gcc -Wall -I/home/mybin/include/c_compatibility -I/home/mybin/include/c_std -I/home/mybin/include/c++/5.4.0/parallel /home/myuser/test.c -o /home/myuser/hello
In file included from /home/mybin/include/bits/c++config.h:482:0,
from /home/mybin/include/c_std/cstdio:44,
from /home/mybin/include/c_compatibility/stdio.h:29,
from /home/myuser/_test.c:3:
/home/mybin/include/bits/os_defines.h:44:19: error: missing binary operator before token "("
#if __GLIBC_PREREQ(2,15) && defined(_GNU_SOURCE)
^
In file included from /home/mybin/include/c_compatibility/stdio.h:29:0,
from /home/myuser/_test.c:3:
/home/mybin/include/c_std/cstdio:96:1: error: unknown type name 'namespace'
namespace std
^
/home/mybin/include/c_std/cstdio:97:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
/home/mybin/include/c_std/cstdio:155:1: error: unknown type name 'namespace'
namespace __gnu_cxx
^
/home/mybin/include/c_std/cstdio:156:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
/home/mybin/include/c_std/cstdio:181:1: error: unknown type name 'namespace'
namespace std
^
/home/mybin/include/c_std/cstdio:182:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
/home/myuser/_test.c:7:1: warning: return type defaults to 'int' [-Wimplicit-int]
main()
^
/home/myuser/test.c: In function 'main':
/home/myuser/test.c:9:5: warning: implicit declaration of function 'printf' [-Wimplicit-function-declaration]
printf("Heh now");
^
/home/myuser/_test.c:9:5: warning: incompatible implicit declaration of built-in function 'printf'
/home/myuser/_test.c:9:5: note: include '<stdio.h>' or provide a declaration of 'printf'
Я пытался экспортировать LD конфигурации флаги, а
Как я знать, какую папку экспортировать, и другим машинам, сделанным из одного и того же базового изображения, чтобы я мог скомпилировать с помощью thi s. Почему включение не происходит или запутывается?
Я не я использую centos7
_ «Я получаю сообщение об ошибке» _ - И какая у вас ошибка? На какой каталог вы указываете? Что такое каталоги? –
a fatal stdio.h not found'error, каталоги не включены, поскольку ни один из них не был экспортирован в подкаталоги '--prefix = myfolder', как указано в ./configure. У меня есть несколько папок на машине 5.4.0, которые находятся в исходной папке src untar'd. Отсюда мой вопрос. –
Какова была ваша команда configure? Как намекают другие, если они установлены в usr/local, prepend/usr/local/bin для PATH и lib или lib64 для LD_LIBRARY_PATH. Он использует вашу конфигурацию для поиска заголовков – tim18