トップ回答者
雑誌付録のドライバがコンパイルエラーとなってします。

質問
-
【雑誌】
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: Done7 files compiled - 13 Warnings - 4 Errors - 1,484 LPS
1 executable built - 1 ErrorC:\temp7\NDIS986>
どなたかエラーの原因を教えて頂けないでしょうか
また、どのようにしたらsysファイルができるか
よろしくお願いいたします。- 移動 Mike Wang (MSCS) 2012年10月2日 12:32 (移動元:Windows デバイスドライバー開発)
回答
-
田中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
- 回答としてマーク Atomu Hidaka-MVP, Moderator 2012年6月26日 12:28
すべての返信
-
田中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
- 回答としてマーク Atomu Hidaka-MVP, Moderator 2012年6月26日 12:28