プロトコルバッファ(protobuf)2.5.0をダウンロードしました。ここ。それからSolaris 8(SunOS ms-sparc8 5.8)にインストールしてみました。 makeを実行しようとすると、このエラーが発生します。
In file included from google/protobuf/compiler/command_line_interface.h:41,
from google/protobuf/compiler/main.cc:33:
google/protobuf/stubs/common.h:48:20: stdint.h: No such file or directory
私のSolarisには1つはありませんstdint.h
。だから私はポータブル製品を入れてみましたstdint.h
。ここそしてそれを入れてください/usr/include/
。と入力した後、stdint.h
makeを再実行してみましたが失敗しました。次に、エラーを引き起こすファイル(command_line_interface.hとmain.cc)を調べました。ヘッダファイルを使用すると、command_line_interface.h
問題がcommon.hによって引き起こされると想定されます。コードを見てみると、次の初期化が見つかりました。main.cc
common.h
common.h
#if defined(__osf__)
// Tru64 lacks stdint.h, but has inttypes.h which defines a superset of
// what stdint.h would define.
#include <inttypes.h>
#elif !defined(_MSC_VER)
#include <stdint.h>
#endif
強制的に使用されることを望みながら取り外して交換して#include <stdint.h>
み!define(_MSC_VER)
ました。それから再び失敗しました。だから私の次の推測は正義がないからです。これはどういう意味ですか? make logを見るとさらに混乱しています。 make ログを確認する必要がある場合。私は貼り付けた<inttypes.h>
inttypes.h
__ost__
ここ。この問題をどのように解決できますか? protobufのインストール中に同じ問題を経験した人はいますか?
答え1
幸いなことに、stdint.hは非常に複雑なヘッダファイルではないため、簡単に作成できます。
いくつかの可能性があります:
<sys/int_types.h>
Solaris 8では、代わりに使用できます<stdint.h>
。ソースコードでこの設定を変更するか、/usr/include/stdint.h
1行の内容を使用して#include <sys/int_types.h>
独自のファイルを作成できます。- 他のシステムからインポートできます。たとえば、
stdint.h
cygwin64では非常にシンプルで移植可能に見えます。 - あるいは、実際のbeautyfilはありませんが、glibcからこれを得ることができます(glibcはすべてを必要以上に10倍複雑にする傾向があります)。
あなたの代わりに(1)から始めましたが、何かが間違っている場合は新しい質問をしました。