cygwinのmingw32でstrptimeが使えない

Pocket

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

$ gcc -c hoge.c
$ gcc -mwindows -mno-cygwin -o hoge.exe hoge.o

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

srtptime がない!

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

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

char *xstrndup(const char *s, size_t n)
{
	char *p = NULL;

	if ( s == NULL)
		return NULL;

	p = (char *)malloc(sizeof(char) * (n+1));
	memset(p, '\0', sizeof(char) * (n+1));
	strncpy(p, s, n);

	return p;
}

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

コメントを残す