4

Linux上で正常にビルドおよび実行されるMicrosoftVisualStudio2008に移植しているアプリケーションがあります。

時間ルーチンに問題があります。Linuxコードは次のようになります。

#include <sys/types.h>
#include <sys/time.h>

typedef long long Usec;

inline Usec timevalToUsec(const timeval &tv)
{
  return (((Usec) tv.tv_sec) * 1000000) + ((Usec) tv.tv_usec);
}

しかし、コンパイラはsys/time.hヘッダーファイルで失敗します:

fatal error C1083: Cannot open include file:
      'sys/time.h': No such file or directory

インクルードを変time.h​​更すると、timevalが定義されていないという別のエラーが発生します。

error C4430: missing type specifier - int assumed.
      Note: C++ does not support default-int

これは、timeval定義されていないためです。

正しいのではtime.hなく含めるのですか?そうであれば、Microsoft Visual Studio 2008の定義はどこで入手できますか?sys/time.hstruct timeval

4

2 に答える 2

5

ヘッダーのwinsock2.h塗りつぶしはstruct timeval、のような呼び出しで使用されるため、引き込まれますselect

于 2011-11-28T19:48:06.250 に答える
3

「sys/time.h」には存在しません。Timevalは、興味深いことに、Winsock2.hにあります。

于 2011-11-28T19:46:10.317 に答える