none
雑誌付録のドライバがコンパイルエラーとなってします。 RRS feed

  • 質問



  • 【雑誌】
     Bus Interface
      改版新版 USBハード&ソフト開発の全て
     TECHI 
      の付録のドライバー
      NDIS986
     

    【ドライバのバージョン】
    C:\WinDDK\7600.16385.0


    【WindowsXPでコンパイル】

    【Check Build】

    【以下が実際にコンパイルした内容です。】

    C:\temp7\NDIS986>build -ce
    BUILD: Compile and Link for x86
    BUILD: Loading c:\winddk\7600.16385.0\build.dat...
    BUILD: Computing Include file dependencies:
    BUILD: Start time: Mon Feb 15 08:19:04 2010
    BUILD: Examining c:\temp7\ndis986 directory for files to compile.
        c:\temp7\ndis986 Invalidating OACR warning log for 'root:x86chk'
    BUILD: Saving c:\winddk\7600.16385.0\build.dat...
    BUILD: Compiling and Linking c:\temp7\ndis986 directory
    Configuring OACR for 'root:x86chk' - <OACR on>
    _NT_TARGET_VERSION SET TO WINXP
    Compiling resources - ndis986.rc
    Compiling - ndis986.c
    1>errors in directory c:\temp7\ndis986
    1>c:\temp7\ndis986\ndis986.c(208) : error C2220: warning treated as error - no '
    object' file generated
    Compiling - an986.c
    1>c:\temp7\ndis986\an986.c(62) : error C2220: warning treated as error - no 'obj
    ect' file generated
    Compiling - usb986.c
    1>c:\temp7\ndis986\usb986.c(57) : error C2220: warning treated as error - no 'ob
    ject' file generated
    Compiling - thread986.c
    1>c:\temp7\ndis986\thread986.c(309) : error C2220: warning treated as error - no
     'object' file generated
    Compiling - generating code...
    Linking Executable - objchk_wxp_x86\i386\ndis986.sys
    1>link : error LNK1181: cannot open input file 'c:\temp7\ndis986\objchk_wxp_x86\
    i386\ndis986.obj'
    BUILD: Finish time: Mon Feb 15 08:19:12 2010
    BUILD: Done

        7 files compiled - 13 Warnings - 4 Errors - 1,484 LPS
        1 executable built - 1 Error

    C:\temp7\NDIS986>

    どなたかエラーの原因を教えて頂けないでしょうか
    また、どのようにしたらsysファイルができるか

    よろしくお願いいたします。

    • 移動 Mike Wang (MSCS) 2012年10月2日 12:32 (移動元:Windows デバイスドライバー開発)
    2010年2月14日 23:43

回答

  • 田中29さん、こんにちは
    "error C2220"がどんなエラーなのかはもう調べてみたでしょうか?

    "error C2220"が何なのかはMSDNの"コンパイラ エラー C2220"が参考になります。
    (↓のページはVisual C++のものですが、エラーメッセージはWDKと同じです)
    http://msdn.microsoft.com/ja-jp/library/ksk5k0ta.aspx

    以下、MSDNからの引用です。

    >エラー メッセージ
    >warning treated as error - no object file generated

    >/WX を指定すると、警告はすべてエラーとして処理されます。エラーが発生したため、
    >オブジェクトまたは実行可能ファイルは生成されませんでした。


    つまり、WDK7600でビルドすると警告が出るソースを、/WXオプション付きでビルドしたことによって
    警告がエラーとして扱われた、と言うことです。

    おそらく、ビルドしたドライバーソースフォルダ内にあるsourcesファイル内でコンパイルオプション /WX が
    指定されているのではないでしょうか。
    sysファイルを作成するだけなら、sourcesファイル内の /WX を削除してビルドすればいいと思います。

    また、具体的にどういった警告が出ているのかについては、xxx.wrnファイル(xxxにはbuildchk_win7_amd64などが入ります)に
    記述されるはずです。
    xxx.wrnファイルはビルド後に生成されますので、内容を確認してみてください。


    kinmoku




    2010年2月15日 4:10

すべての返信

  • 田中29さん、こんにちは
    "error C2220"がどんなエラーなのかはもう調べてみたでしょうか?

    "error C2220"が何なのかはMSDNの"コンパイラ エラー C2220"が参考になります。
    (↓のページはVisual C++のものですが、エラーメッセージはWDKと同じです)
    http://msdn.microsoft.com/ja-jp/library/ksk5k0ta.aspx

    以下、MSDNからの引用です。

    >エラー メッセージ
    >warning treated as error - no object file generated

    >/WX を指定すると、警告はすべてエラーとして処理されます。エラーが発生したため、
    >オブジェクトまたは実行可能ファイルは生成されませんでした。


    つまり、WDK7600でビルドすると警告が出るソースを、/WXオプション付きでビルドしたことによって
    警告がエラーとして扱われた、と言うことです。

    おそらく、ビルドしたドライバーソースフォルダ内にあるsourcesファイル内でコンパイルオプション /WX が
    指定されているのではないでしょうか。
    sysファイルを作成するだけなら、sourcesファイル内の /WX を削除してビルドすればいいと思います。

    また、具体的にどういった警告が出ているのかについては、xxx.wrnファイル(xxxにはbuildchk_win7_amd64などが入ります)に
    記述されるはずです。
    xxx.wrnファイルはビルド後に生成されますので、内容を確認してみてください。


    kinmoku




    2010年2月15日 4:10


  •  kinmokuさん

     ありがとうございました。

     コンパイル通りました。
     おっしゃる通りです。
     警告(C4996)は、セキュリティ上の問題で使われなくなった関数を使用しているってことのようです。

     すっきりして嬉しいです。

    2010年2月16日 4:23