cygwinのmingw32でstrptimeが使えない

Pocket

会社でSQL Severにアクセスログをインポートする必要に迫られました
アクセスログはapacheのcombinedな設定であったのでそのままではインポートできません
なので、SSISで使うためのコマンドプログラムを作ることにしました

<br />
$ gcc -c hoge.c<br />
$ gcc -mwindows -mno-cygwin -o hoge.exe hoge.o<br />

-mno-cygwin を付けてコンパイルすると、

srtptime がない!

と言われ、バイナリができない。。。 undefined reference って言われる

-mwindowsだけ付ければバイナリができる
mingw32 に srtptime がポートされてないんだろうなぁ
同じように strndup も undefined reference になるけど、
こちらは簡単なので関数作っちゃいます

<br />
char *xstrndup(const char *s, size_t n)<br />
{<br />
	char *p = NULL;</p>
<p>	if ( s == NULL)<br />
		return NULL;</p>
<p>	p = (char *)malloc(sizeof(char) * (n+1));<br />
	memset(p, '&#92;&#48;', sizeof(char) * (n+1));<br />
	strncpy(p, s, n);</p>
<p>	return p;<br />
}<br />

自分で srtptime のコマンドつくるは長くなるので面倒だなぁ
なので、cygwin1.dll 有りで運用することにしよう

コメントを残す