キムラデービーブログ

オープンソースデータベースを加速する「キムラデービー」のブログです。カレー日記を兼ねてます。なお著者は2010-06-01より日本オラクルに在籍していますが、本サイト(ブログ、またはウェブサイト)において示されている見解は、私自身の見解であって、オラクルの見解を必ずしも反映したものではありません。
Windows上で、SQLiteのGeopolyを使う(ということはMSVCでコンパイルするのねん)
0
    Windows上で、SQLiteのGeopolyを使う(ということはMSVCでコンパイルするのねん)

    本エントリはRDBMS-GIS(MySQL,PostgreSQLなど) Advent Calendar 2018
    SQLite Advent Calendar 2018の17日目です。

    SQLiteでGIS ! ということで、SQLiteの3.25.0以降でサポートされたGeopolyを試そうと思ったのですが、標準のバイナリにはなくコンパイルが必要、ということでSpatiaLiteでお茶を濁そうと思っていましたが、ぼーっとしているうちに、先にエントリが公開されてしまいましたので、
    初心に戻り、コンパイルすることにしました。しかも、Windows上で。。。。


    1.コンパイル環境の構築
    うーん、ここらへんをみるとインストールできるんですかね? オプションでちゃんとCやC++がインストールされれば大丈夫だと思います。

    Visual Studio 2017 のインストール

     以下のブログでも少しふれましたが従来のExpress Editionに加えPro相当のCommunity Editionも出たので、Windows上の開発環境は相当楽に構築・運用できるようになりました。

    2015年のFirebird

    2.ソースのダウンロード
    以下のページをみて進めていきます。

    How To Compile SQLite

     ソースは以下からアマルガム(歯のつめもので有名 w)をダウンロード。

    SQLite Download Page

     現在の最新はsqlite-amalgamation-3260000.zip(2.18 MiB)なので、これをダウンロードして解凍します。
    以下のようにソースファイル四つのシンプルなものがダウンロードできます。

    C:¥Users¥mekimura¥Downloads¥sqlite-amalgamation-3260000 のディレクトリ

    2018/12/30 12:46 .
    2018/12/30 12:46 ..
    2018/12/01 22:38 504,837 shell.c
    2018/12/01 22:38 7,770,073 sqlite3.c
    2018/12/01 22:38 556,318 sqlite3.h
    2018/12/01 22:38 33,713 sqlite3ext.h
    4 個のファイル 8,864,941 バイト
    2 個のディレクトリ 10,993,639,424 バイトの空き領域

    3.コンパイル
     上記ディレクトリでまずclと打ってみます。

    C:¥Users¥mekimura¥Downloads¥sqlite-amalgamation-3260000>cl
    Microsoft (R) C/C++ Optimizing Compiler Version 19.00.24215.1 for x86
    Copyright (C) Microsoft Corporation. All rights reserved.

    usage: cl [ option... ] filename... [ /link linkoption... ]

    このようにでればコンパイラは動きそうです。

    いきなり実行すると以下のエラー。おお標準ライブラリとか環境変数で設定してなかった!

    C:¥Users¥mekimura¥Downloads¥sqlite-amalgamation-3260000>cl shell.c sqlite3.c -Fesqlite3.exe
    Microsoft (R) C/C++ Optimizing Compiler Version 19.00.24215.1 for x86
    Copyright (C) Microsoft Corporation. All rights reserved.

    shell.c
    shell.c(77): fatal error C1034: stdlib.h: no include path set
    sqlite3.c
    sqlite3.c(1074): fatal error C1034: stdarg.h: no include path set
    Generating Code...

    ああ、後は以下をみればいいのかな?

    チュートリアル: コマンドラインでの C プログラムをコンパイルします。

    メニューから開発コマンドプロンプト(Developper Command Prompt)を開きます。そこから実行すればいろいろよしなに設定してくれているはずなので、再度実行。

    C:¥Users¥mekimura¥Downloads¥sqlite-amalgamation-3260000>cl shell.c sqlite3.c -Fesqlite3.exe
    Microsoft (R) C/C++ Optimizing Compiler Version 19.00.24215.1 for x86
    Copyright (C) Microsoft Corporation. All rights reserved.

    shell.c
    sqlite3.c
    Generating Code...
    Microsoft (R) Incremental Linker Version 14.00.24215.1
    Copyright (C) Microsoft Corporation. All rights reserved.

    /out:sqlite3.exe
    shell.obj
    sqlite3.obj

    これでexeができました!

    2018/12/30 12:57 999,424 sqlite3.exe

    けど、このままではオリジナルと同じですね :) Geopolyを使うためには、それようのオプション指定が必要です。

    cl /DSQLITE_ENABLE_GEOPOLY /DSQLITE_ENABLE_RTREE shell.c sqlite3.c -Fesqlite3.exe

    4.実行
    このバイナリで「CREATE VIRTUAL TABLE newtab USING geopoly(a,b,c);」を実行すると、以前は以下のようなつれない返事だったものが、

    Error: no such module: geopoly

    そのまま受け入れてもらえます。やったね! これでいろいろ試せますね!

    The Geopoly Interface To The SQLite R*Tree Module


    JUGEMテーマ:コンピュータ



    | meijik | SQLite | 13:54 | comments(0) | trackbacks(0) | - | - |
    1234567
    891011121314
    15161718192021
    22232425262728
    2930     
    << September 2019 >>
    + RECOMMEND
    100人のプロが選んだソフトウェア開発の名著 君のために選んだ1冊
    100人のプロが選んだソフトウェア開発の名著 君のために選んだ1冊 (JUGEMレビュー »)

    100人のうちの一人としてミックさんの本を推薦しています。
    + RECOMMEND
    MySQL 5.1 Plugin Development
    MySQL 5.1 Plugin Development (JUGEMレビュー »)
    Andrew Hutchings,Sergei Golubchik
    MySQL 5.1 のプラグインを作るならこれ!
    + RECOMMEND
    AWKを256倍使うための本 (Ascii 256倍)
    AWKを256倍使うための本 (Ascii 256倍) (JUGEMレビュー »)
    志村 拓,鷲北 賢,西村 克信
    ここにきてまさかの復刊。15〜16年前の本ですが、いまでも十分役立ちますよ!!
    + RECOMMEND
    Linux-DB システム構築/運用入門 (DB Magazine SELECTION)
    Linux-DB システム構築/運用入門 (DB Magazine SELECTION) (JUGEMレビュー »)
    松信 嘉範
    Linux-DB システム構築の新スタンダード。DB Magazine人気連載、待望の書籍化です!!
    + RECOMMEND
    + RECOMMEND
    超・極める!MySQL
    超・極める!MySQL (JUGEMレビュー »)
    坂井 恵,志村 和彦,ひろせ まさあき,松信 嘉範
    内容は少々古くなりましたが、内部説明があり、いろいろ面白いです。
    + RECOMMEND
    The Root of .NET Framework
    The Root of .NET Framework (JUGEMレビュー »)
    荒井 省三
    .NETの根っこをつかむ、か?
    + RECOMMEND
    エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド
    エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド (JUGEMレビュー »)
    奥野 幹也
    これまでにない構築、そして構築後のMySQLのための本。
    + RECOMMEND
    Database Management Systems
    Database Management Systems (JUGEMレビュー »)
    Raghu Ramakrishnan,Johannes Gehrke
    ミックさん連載の参考書籍です。
    + RECOMMEND
    Advanced Programming in the UNIX Environment: Paperback Edition (2nd Edition) (Addison-Wesley Professional Computing Series)
    Advanced Programming in the UNIX Environment: Paperback Edition (2nd Edition) (Addison-Wesley Professional Computing Series) (JUGEMレビュー »)
    W. Richard Stevens,Stephen A. Rago
    必読! といいつつ私が読んだのは初版の日本語訳です。差分はチェックしないといけませんね。
    + RECOMMEND
    + RECOMMEND
    + RECOMMEND
    Western Digital Scorpio Blue 2.5inch 5400rpm 320GB 8MB PATA WD3200BEVE
    Western Digital Scorpio Blue 2.5inch 5400rpm 320GB 8MB PATA WD3200BEVE (JUGEMレビュー »)

    DELL SX260の換装用に購入。今はコチラのほうが安いですね。
    + RECOMMEND
    情熱プログラマー ソフトウェア開発者の幸せな生き方
    情熱プログラマー ソフトウェア開発者の幸せな生き方 (JUGEMレビュー »)
    Chad Fowler
    OSC2010神戸に出展されたジュンク堂で買いました。
    + RECOMMEND
    Software Design 総集編 【2000~2009】(DVD付)
    Software Design 総集編 【2000~2009】(DVD付) (JUGEMレビュー »)

    メガトン級の過去記事。売り切れる前にお店に急げ!
    + RECOMMEND
    + RECOMMEND
    玄人志向 2.5型HDDケース SATA対応USB2.0接続 GW2.5AI-SU2
    玄人志向 2.5型HDDケース SATA対応USB2.0接続 GW2.5AI-SU2 (JUGEMレビュー »)

    Aspire 1410 HDD換装後、昔のHDDはこれにいれます。
    + RECOMMEND
    + RECOMMEND
    acer Aspire Timeline AS1410 11.6型ノートPC Windows7搭載 250GB ブラック AS1410-KK22
    acer Aspire Timeline AS1410 11.6型ノートPC Windows7搭載 250GB ブラック AS1410-KK22 (JUGEMレビュー »)

    色違い黒(他に青と白があります): メモリは最大4GBとあるが、がんばれば8GBいけるらしい。
    + RECOMMEND
    Firebird 徹底入門
    Firebird 徹底入門 (JUGEMレビュー »)
    木村 明治,はやし つとむ,坂井 恵
    Firebird日本ユーザ会のはやしさん、そしてMyNAから拝借(?) してきた坂井さんとともに書きました。まだ誰も知らないFirebird 2.5や、いままでドキュメントのなかったツール類についてもソースを確認してとりあげた本です。是非ご活用ください。
    + SELECTED ENTRIES
    + RECENT COMMENTS
    • [ミュージシャンに聴かせたい・弾かせたい!] (4) 山田元気様
      meijik (07/27)
    • 毎月日経SYSTEMSが届くたびに?が増え続ける: 日経SYSTEMSのコラム「ITアーキテクチャーの真髄」と「第7正規化」
      meijik (03/03)
    • 2019年の木村明治
      田中尚 (01/08)
    • 使い慣れたSQLに潜む実装依存: Firebirdの場合(6) 文字列との結合演算子
      noname (12/10)
    • 毎月日経SYSTEMSが届くたびに?が増え続ける: 日経SYSTEMSのコラム「ITアーキテクチャーの真髄」と「第7正規化」
      Moriaki_ (01/05)
    • 毎月日経SYSTEMSが届くたびに?が増え続ける: 日経SYSTEMSのコラム「ITアーキテクチャーの真髄」と「第7正規化」
      Moriaki_ (01/05)
    • 2015年版 InterBaseの歩み
      nakagami (12/06)
    • 毎月日経SYSTEMSが届くたびに?が増え続ける: 日経SYSTEMSのコラム「ITアーキテクチャーの真髄」と「第7正規化」
      meijik (11/22)
    • 分散DB本読書会第46回メモ「STOP AFTER 10」
      masudahidehiko (09/01)
    • Windows上でのMySQLビルド方法
      kinoyasu (03/31)
    + RECENT TRACKBACK
    + CATEGORIES
    + ARCHIVES
    + MOBILE
    qrcode
    + LINKS
    + PROFILE