gcc 5.4.0(Make、makeをroot以外のフォルダにインストール)をコンパイルし、それを同じベースディストリビューションの別のマシンにエクスポートしました。私は2番目のマシン上でhello world
をコンパイルしようとすると、しかし、私はstdio.h
のエラーを取得し、カスケードにcstdio
などgccをコンパイルした後5.4.0エクスポートするヘッダフォルダ
ことはgccのために私は--helpあたりとして利用可能なすべてのフォルダに対してconfigure --prefix=/home/mybin --bindir=/home/mybin/bin --libdir=/home/mybin/lib
などを使用しました。
gccコンパイルマシンでは、/home/tmp/gcc-5.4.0/libstdc++-v3/include
がすべてのサブディレクトリを持つ--includedir=/home/mybin/include
フォルダにインストールされているようです。
5.4.0コンパイルマシンでstdio.h
を検索すると、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
しかし、私はそう
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/tr1/cstdio
/home/mybin/include/c++/5.4.0/cstdio
/home/mybin/include/c_std/cstdio
/home/mybin/include/c/cstdio
を更新していないが、私は私も
私はどのようにLDの設定フラグを輸出しようとしている/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'
を持っていますエクスポートするフォルダと同じベースイメージから作成された他のマシンを知っているので、私はコンパイルすることができますバージョン。インクルードが見つからない、または混乱しているのはなぜですか?
私は、インストールディレクトリを所有している場合いいえ、あなたはsudoを必要としませんcentos7
_「エラーが発生しました」_ - どのようなエラーが表示されますか?どのディレクトリを指していますか?ディレクトリを含むものは何ですか? –
'致命的なstdio.hが見つかりません'エラーです。ディレクトリは./configureで指定された '--prefix = myfolder'サブディレクトリにエクスポートされていません。元のuntar'd srcフォルダにあるいくつかのフォルダが5.4.0マシンにあります。したがって、私の質問です。 –
あなたのconfigureコマンドは何ですか?他の人が示唆しているように、usr/localにインストールされている場合は、/ usr/local/binをPATHに、libまたはlib64をLD_LIBRARY_PATHに追加してください。 configureを使用して、$ PATHにbindirを付けて、 – tim18