0

ダウンロードしたオープンソースプロジェクトをコンパイルしようとしていますが、これは明らかにVC++7.1で記述されています。

多くのトラブルの後、C ++の初心者である私は、プロジェクトが使用するSTLPortのインクルードをダウンロードして修正することができました。ただし、特定のタイプが定義されていないことを示す15,000のエラーが発生します。それらのいくつかは次のとおりです。

u_int32_t
int64_t
u_int16_t
u_int8_t

少しグーグルした後、C99に追加されていることがわかりました。私の前の他の開発者は、VCを使用してそれをコンパイルすることに成功しました。私はVC10を使用しています。

プロジェクトは数年前に死んでいるので、作者に連絡することはできません。

4

3 に答える 3

4

Visual C ++コンパイラは、ほとんどのC99機能をサポートしていません。

標準の固定幅整数型を使用する場合は<cstdint>、それらをインクルードして修飾するstd::か、インクルードする必要があります<stdint.h>

標準の固定幅の符号なし型名は、、、uint32_tおよびuint16_tですuint8_t(つまり、との_間にはuありませんint)。もちろん、必要に応じて独自の型をtypedefすることもできます(新しいコードには標準のtypedefを使用する必要がありますが、レガシーコードと相互運用するには独自のtypedefが必要になる場合があります)。

于 2010-10-28T22:38:23.973 に答える
3

これらの型は__int(bitsize)機能を提供するため、VisualStudioで自分で定義するのは非常に簡単です。

typedef __int64 int64_t;
typedef unsigned __int32 u_int32_t;
typedef unsigned __int16 u_int16_t;
typedef unsigned __int8 u_int8_t;
于 2010-10-28T22:39:55.517 に答える
0

互換性のあるC99コンパイラとライブラリをインストールし、VC++10環境をそれらに向ける必要があります。

ただし、ビルド/作成ファイルを見つけてそれらを使用する方が簡単な方法だと思います。

于 2010-10-28T22:39:18.463 に答える