用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 ..

猜你喜欢

转载自blog.csdn.net/feiyunw/article/details/80548209