小さい頃はエラ呼吸

いつのまにやら肺で呼吸をしています。


Windows8.1+Visual Studio 2015でOracle Pro*cファイルをビルドする

f:id:replication:20150802234951j:plain

はじめに

Windows8.1+Visual Studio 2015 CommunityでOracle Pro*cファイルをビルドする方法をまとめました。

環境
  • Windows 8.1
  • Visual Studio 2015 Community
  • Oracle Database 12c Release 1 Client (12.1.0.1.0) for Microsoft Windows (32-bit)
事前準備

事前にOracle Clientをインストールしてください。
この記事では、以下のパスにOracle Clientをインストールした場合として説明します。

Oracleインストールディレクトリ C:\app\client\replication\product\12.1.0\client_1
Visual Studio 2015でPro*cファイルをビルドする

1.Visual Studioを起動して、新規C++プロジェクトを作成します。
f:id:replication:20150802211022j:plain

プロジェクトの種類 テンプレート
Win32 Win32コンソールアプリケーション

2.Win32アプリケーションウィザードで「次へ」ボタンをクリックします。
f:id:replication:20150802232000j:plain
3.アプリケーションの設定で、「プリコンパイル済みヘッダー(P)」のチェックを外し、「完了」ボタンをクリックします。
f:id:replication:20150802232127j:plain
4.cppファイルの拡張子をcpp→pcへと変更します。pcファイルに記述する内容は後述します。
f:id:replication:20150802232301p:plain
5.空のcファイルを登録します。ソースファイルフォルダを右クリックして、追加(D)→新しい項目(W)を選択します。
f:id:replication:20150802232503p:plain
C++ファイル(.cpp)を選択し、ファイル名欄の拡張子を(.c)に変更してから「追加(A)」ボタンをクリックします。

カテゴリ テンプレート
コード C++ファイル(.cpp)

f:id:replication:20150802232716j:plain
f:id:replication:20150802232755p:plain
6.Oracleのインクルードファイルを追加します。ソリューションのプロパティを開き、「追加のインクルードディレクトリ」に以下を指定します。

追加のインクルードディレクトリ Oracle Clientのインストールディレクトリ\precomp\public

f:id:replication:20150802233003j:plain
7.コンパイル言語をC++ではなく、Cソースしてコンパイルするよう変更します。ソリューションのプロパティを開き、C/C++→詳細→「コンパイル言語の選択」に以下を指定します。
f:id:replication:20150802233313j:plain
8.追加のライブラリディレクトリを登録します。ソリューションのプロパティを開き、リンカ→全般→「追加のライブラリディレクトリ」に以下を指定します。

追加のライブラリディレクトリ Oracle Clientのインストールディレクトリ\precomp\LIB

f:id:replication:20150802233442j:plain
9.追加の依存ファイルを登録します。ソリューションのプロパティを開き、リンカ→入力→「追加の依存ファイル」に以下を指定します。

追加の依存ファイル orasql12.lib

f:id:replication:20150802233645p:plain
f:id:replication:20150802233701j:plain
10.pcファイルにカスタムビルドを設定します。
pcファイルを右クリックしてプロパティを開きます。カスタムビルドステップを選択し、以下を指定します。

コマンドライン proc %(Filename).pc
出力ファイル %(Filename).c

f:id:replication:20150802234149p:plain

ビルドしてみる

メニューからビルド(B)→ソリューションのビルド(R)を選択します。

ビルドログにprocコマンドの実行ログが出力されていることを確認します。

1>------ すべてのリビルド開始: プロジェクト:ConsoleApplication1, 構成:Debug Win32 ------
1> Performing Custom Build Tools
1>
1> Pro*C/C++: Release 12.1.0.1.0 - Production on 日 8月 2 23:42:52 2015
1>
1> Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved.
1>
1> システムのデフォルト・オプション値: C:\app\client\replication\product\12.1.0\client_1\precomp\admin\pcscfg.cfg
1>
1> ConsoleApplication1.c
1> stdafx.cpp
1> ConsoleApplication1.vcxproj -> c:\users\replication\documents\visual studio 2015\Projects\ConsoleApplication1\Debug\ConsoleApplication1.exe
========== すべてリビルド: 1 正常終了、0 失敗、0 スキップ ==========

procコマンドが正常に実行されると、新規追加したcファイルの中にソースコードが吐き出されます。
f:id:replication:20150802234410j:plain