用Visual Studio 2015/2017編譯ODB: C++ Object-Relational Mapping (ORM)

ODB

https://www.codesynthesis.com/products/odb/

安裝build2-toolchain

或使用開發庫 https://stage.build2.org/0/ 。參考The build2 Toolchain Installation and Upgrade進行安裝。

  1. 複製已下載的文件到C:\build2-build\並校驗
CD /d C:\build2-build
TYPE *.sha256
FOR %f in (*.zip *.xz) DO certutil -hashfile %f SHA256
  1. 解壓build2-baseutils-*-x86_64-windows.zip到C:\build2\,驗證tar路徑
SET PATH=C:\build2\bin;%PATH%
where tar
  1. 解壓build2-mingw-*-x86_64-windows.tar.xz到C:\build2\,驗證g++路徑
tar -xJf build2-mingw-*-x86_64-windows.tar.xz --one-top-level=C:\build2 --strip-components=1
where g++
  1. 解壓build2-toolchain-*.tar.xz到C:\build2-build\,運行批處理文件安裝
tar -xJf build2-toolchain-*.tar.xz
CD build2-toolchain-*
CALL .\build-mingw.bat --trust yes --timeout 3600 --make mingw32-make --make -j8 g++

準備Git庫

MD D:\prj\odb
CD /d D:\prj\odb

代碼庫主要在以下兩處
- https://git.build2.org/cgit/
- https://git.codesynthesis.com/cgit/

git clone以下代碼庫到D:\prj\odb
- libodb
https://git.codesynthesis.com/odb/libodb.git
- libmysqlclient
https://git.build2.org/packaging/mysql/libmysqlclient.git
- libmariadb
https://git.build2.org/packaging/mariadb/libmariadb.git
- libcutl
https://git.codesynthesis.com/libcutl/libcutl.git
- cli
https://git.codesynthesis.com/cli/cli.git
- libodb-mysql
https://git.codesynthesis.com/odb/libodb-mysql.git
- libstudxml
https://git.codesynthesis.com/libstudxml/libstudxml.git
- odb
https://git.codesynthesis.com/odb/odb.git

安裝libcutl(安裝cli和ODB compiler需要)

SET PATH=C:\build2\bin;%PATH%
ECHO ===== Installing libcutl-gcc
MD libcutl-gcc
b config.cxx=g++ config.cc.coptions="-O2" config.install.root=C:\build2 "configure(libcutl/@libcutl-gcc/)"
CD libcutl-gcc/
b install
CD ..

安裝cli(安裝ODB compiler需要)

ECHO ===== Installing cli-gcc
MD cli-gcc
b config.cxx=g++ config.cc.coptions="-O2" config.import.libcutl=libcutl-gcc/ config.install.root=C:\build2 "configure(cli/@cli-gcc/)"
CD cli-gcc
b install
CD ..

安裝libstudxml(安裝ODB compiler需要)

ECHO ===== Installing libstudxml-gcc
MD libstudxml-gcc
b config.cxx=g++ config.cc.coptions="-O2" config.install.root=C:\build2 "configure(libstudxml/@libstudxml-gcc/)"
CD libstudxml-gcc
b install
CD ..

安裝ODB Compiler

ECHO ===== Installing odb-gcc
MD odb-gcc
b config.cxx=g++ config.cc.coptions="-O2" config.cli=C:\build2\bin\cli.exe config.import.libstudxml=libstudxml-gcc/ config.import.libcutl=libcutl-gcc/ config.install.root=C:\build2 "configure(odb/@odb-gcc/)"
CD odb-gcc
b install
CD ..

安裝Common Runtime Library(libodb)

在”x64 Native Tools Command Prompt for VS”窗口

set PATH=C:\build2\bin;%PATH%
CD /d D:\prj\odb\
ECHO ===== Installing libodb-msvc
MD libodb-msvc
b config.cxx=cl config.cc.coptions="/O2" config.install.root=Release/ "configure(libodb/@libodb-msvc/)"
CD libodb-msvc
b install
CD ..
ECHO ===== Installing libodb-msvcdbg
MD libodb-msvcdbg
b config.cxx=cl config.cc.coptions="/Od /MDd /Zi" config.cc.loptions=/DEBUG config.install.root=Debug/ "configure(libodb/@libodb-msvcdbg/)"
CD libodb-msvcdbg
b install
CD ..

安裝libmysqlclient(安裝libodb-mysql需要)

在”x64 Native Tools Command Prompt for VS”窗口

ECHO ===== Installing libmysqlclient-msvc
MD libmysqlclient-msvc
b config.cxx=cl config.cc.coptions="/O2 /wd4819" config.install.root=Release/mysql "configure(libmysqlclient/@libmysqlclient-msvc/)"
CD libmysqlclient-msvc
b install
CD ..
ECHO ===== Installing libmysqlclient-msvcdbg
MD libmysqlclient-msvcdbg
b config.cxx=cl config.cc.coptions="/Od /MDd /Zi /wd4819" config.cc.loptions=/DEBUG config.install.root=Debug/mysql "configure(libmysqlclient/@libmysqlclient-msvcdbg/)"
CD libmysqlclient-msvcdbg
b install
CD ..

安裝Database Runtime Libraries for MySQL(libodb-mysql)

在”x64 Native Tools Command Prompt for VS”窗口

ECHO ===== Installing libodb-mysql-msvc
MD libodb-mysql-msvc
CD libodb-mysql
git.exe checkout -f --track -B master remotes/origin/master --
CD ..
b config.cxx=cl config.cc.coptions="/O2" config.cli=C:\build2\bin\cli.exe config.import.libmysqlclient=libmysqlclient-msvc/ config.import.libodb=libodb-msvc/ config.install.root=Release/mysql "configure(libodb-mysql/@libodb-mysql-msvc/)"
CD libodb-mysql-msvc
b install
CD ..
ECHO ===== Installing libodb-mysql-msvcdbg
MD libodb-mysql-msvcdbg
b config.cxx=cl config.cc.coptions="/Od /MDd /Zi" config.cc.loptions=/DEBUG config.cli=C:\build2\bin\cli.exe config.import.libmysqlclient=libmysqlclient-msvcdbg/ config.import.libodb=libodb-msvcdbg/ config.install.root=Debug/mysql "configure(libodb-mysql/@libodb-mysql-msvcdbg/)"
CD libodb-mysql-msvcdbg
b install
CD ..

安裝libmariadb(安裝libodb-mariadb需要)

在”x64 Native Tools Command Prompt for VS”窗口

ECHO ===== Installing libmariadb-msvc
MD libmariadb-msvc
b config.cxx=cl config.cc.coptions="/O2 /wd4819" config.install.root=Release/mariadb "configure(libmariadb/@libmariadb-msvc/)"
CD libmariadb-msvc
b install
CD ..
ECHO ===== Installing libmariadb-msvcdbg
MD libmariadb-msvcdbg
b config.cxx=cl config.cc.coptions="/Od /MDd /Zi /wd4819" config.cc.loptions=/DEBUG config.install.root=Debug/mariadb "configure(libmariadb/@libmariadb-msvcdbg/)"
CD libmariadb-msvcdbg
b install
CD ..

安裝Database Runtime Libraries for MariaDB(libodb-mariadb)

安裝libodb-mysql時用libmariadb替換libmysqlclient,要在libodb-mysql創建git分支mariadb做以下修改

  • 修改manifest
-depends: libmysqlclient ^5.0.3
+depends: libmariadb ^10.2.2
  • 修改odb\mysql\buildfile
-client_lib = 'mysql'
-#client_lib = 'mariadb'
+#client_lib = 'mysql'
+client_lib = 'mariadb'
  • 在”x64 Native Tools Command Prompt for VS”窗口
ECHO ===== Installing libodb-mariadb-msvc
MD libodb-mariadb-msvc
CD libodb-mysql
git checkout -f mariadb --
CD ..
b config.cxx=cl config.cc.coptions="/O2" config.cli=C:\build2\bin\cli.exe config.import.libmariadb=libmariadb-msvc/ config.import.libodb=libodb-msvc/ config.install.root=Release/mariadb "configure(libodb-mysql/@libodb-mariadb-msvc/)"
CD libodb-mariadb-msvc
b install
CD ..
ECHO ===== Installing libodb-mariadb-msvcdbg
MD libodb-mariadb-msvcdbg
CD libodb-mysql
git checkout -f mariadb --
CD ..
b config.cxx=cl config.cc.coptions="/Od /MDd /Zi" config.cc.loptions=/DEBUG config.cli=C:\build2\bin\cli.exe config.import.libmariadb=libmariadb-msvcdbg/ config.import.libodb=libodb-msvcdbg/ config.install.root=Debug/mariadb "configure(libodb-mysql/@libodb-mariadb-msvcdbg/)"
CD libodb-mariadb-msvcdbg
b install
CD ..
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章