wget windos版の生成 with vs2008
執筆:2008.04.16
□GNUさんから最新版をダウンロードしました。
ftp://ftp.gnu.org/pub/gnu/wget/
http://www.gnu.org/software/wget/
□opensslがない場合は、インストールします。
コンパイル済みのものが便利です。
http://www.openssl.org/related/binaries.html
□VS2008がない場合は、無料版でいいのでC++をインストールします。
Visual Studio 2008 Express Edition
http://www.microsoft.com/japan/msdn/vstudio/express/
準備ができたので始めます。
今回は、最新版はwget-1.11でしたのでそれを解凍しました
【初回または、OpenSSLのバージョンが変わった際に実施】
詳しくは、wget-x.xx\windows\READMEを読みます
OpenSSLのinclude\opensslとlibをコピーします
下記のコマンドは、間違うと大変なことになるので
エクスプローラーを使ってコピーした方がいいです。 |
|
xcopy /S C:\OpenSSL\include\openssl\ "C:\Program Files\Microsoft Visual Studio 9.0\VC\include\openssl\"
xcopy /S C:\OpenSSL\lib\VC "C:\Program Files\Microsoft Visual Studio 9.0\VC\lib\"
copy C:\OpenSSL\lib\VC\libeay32MD.lib "C:\Program Files\Microsoft Visual Studio 9.0\VC\lib\libeay32.lib"
copy C:\OpenSSL\lib\VC\ssleay32MD.lib "C:\Program Files\Microsoft Visual Studio 9.0\VC\lib\ssleay32.lib" |
【さぁ生成です】
面倒なので私はバッチファイルで処理しています。
wget_win_build_VS2008.bat |
@rem http://www.gnu.org/software/wget/
@rem http://ftp.gnu.org/gnu/wget/
@rem --------
@rem Cコンパイラが必要。
@rem OpenSSLが必要
@rem --------
@rem 作り方は、
@rem wget-x.xx\windows\READMEを読みます
@rem --------
@rem wget-x.xx\configure.bat
@rem Usage: configure [--borland | --mingw | --msvc]
@rem
@rem 【msvc】
@rem ★生成します
@rem call "C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\vsvars32.bat"
call "C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat"
call configure --msvc
NMAKE
echo src\wget.exe ができあがります
@rem pause
|
【不正な属性でタグが終わっていた場合】
不正な属性(属性名=値無し>)でタグが終わっていた場合、ダウンローしてくれません。
下記のようにすると読み込んでくれるようになりますが、
どうなんでしょう?。。。
手順 |
|
例 |
<html><meta></meta><body>
<p>wget -p "this page URL"</p>
<p>wget can not save image2</p>
image1 <img src="image1.png"><br>
image2 <img src="image2.png" alt=><br>
</body></html> |
回避 |
修正
GNU Wget 1.11
src\html-parse.c
947: goto backout_tag;
if (attr_value_begin == attr_value_end)
/* <foo bar=> */
/* ^ */
- goto backout_tag;
+ break; |
予期しないデータの破損などをするおそれがあります
・変更は、自己責任でしましょう。
・説明書(ソースコードも)をよく読み理解しておきましょう |