コンパイル、リンク、ロード
Origin C関数にアクセスする前に、コードビルダでコンパイルしてリンク(ビルド)する必要があります。
エラー無く関数をコンパイルリンクしたら、自動的にロードされ、現在のOriginセッションでアクセスできます。以降のOriginセッションで関数にアクセスするには、再ロードし、リンクする必要があります。この処理は高速で自動化することができます。
この章では、Origin Cのソースファイルとプリプロセスファイルを手動または自動でビルドする方法について説明します。
目次
コンパイルとリンク
Origin Cのソースファイルまたはプリプロセスファイルで定義した関数を作成するため、以下のステップを行う必要があります。
- コードビルダのワークスペースにファイルを追加
- ファイルをコンパイルする
- すべての関連ファイルをリンクし、必要に応じて関連ファイルもコンパイルして、作成したオブジェクトファイルをロード
全てのファイルをコンパイルしてリンクする行為はビルドと呼ばれます。
ワークスペースにファイルを追加
ソースファイルまたはプリプロセスファイルをコンパイルリンクする前に、ファイルは、コードビルダワークスペースフォルダであるProject, User, System, Temporaryの内の1つに追加する必要があります。 すべてのソースファイルは、最初に作成されるか、Userフォルダにロードされます。
ファイルをコンパイルする
ファイルをワークスペースに追加した後、 (コンパイルボタン
をクリックして)コンパイルし、オブジェクトファイルを生成する必要があります。オブジェクトファイルは、ソースファイルまたはプリプロセスファイルと同じ名前で、OCB という拡張子を持ちます。Origin8.1以降、オブジェクトファイルは、アプリケーションデータフォルダに保存されます。古いバージョンでは、ファイルは User Files\OCTemp フォルダに保存されます。
ワークスペースをビルドする
アクティブなファイルとすべての関連ファイルをビルドするには、ビルド
ボタンを選択するか、すべてをリビルド
ボタンを選択し、ワークスペース内のすべてのファイルをビルドします。作成したオブジェクトファイルは、自動的にメモリにロードされ、リンクされ、ファイルに定義した関数はOriginの中で実行可能になります。
オブジェクトファイルが生成されると、その後のビルド処理がより高速になります。ソースファイルとプリプロセスファイルに変更が無ければ、コードビルダはオブジェクトファイルを直接ロードし、リンクしますが、ファイルをリビルドしません。
ビルドとすべてをビルドの違い
ビルド:与えられたフォルダがコードビルダでアクティブフォルダで、ビルドツールバーボタン
がクリックされると、そのフォルダ内のすべてのファイルがコンパイルリンクされます。
すべてをビルド:コードビルダのすべてをリビルドボタン
がクリックされると、コードビルダのすべて のフォルダ内のファイルがコンパイルリンクされます。
ビルドの自動化
最初に、すべてのOrigin CソースファイルまたはプリプロセスファイルがUserフォルダ内で作成され、開かれます。そして、上記のようにOrigin Cソースファイルを手動でビルドします。 しかし、ビルド処理を自動化するとメリットがあります。これは、コードビルダのフォルダ構造を使用することで行なったり、機能的に少しの違いがあったり、起動時のビルドオプションを利用して、行うことができます。
Projectフォルダにファイルを追加する
コードビルダのProjectフォルダにファイルを追加すると、関連のOriginプロジェクトが開いたときに、自動的にビルドされます。
次の方法で、Projectフォルダにファイルを追加できます。
- Projectフォルダを右クリックして、ファイルの追加を選びます。
- 別のワークスペースフォルダからファイルをドラッグし、Projectフォルダにドロップします。
[AutoLoad]フォルダにファイルを追加する
以前は、コードビルダのSystemフォルダを右クリックしてファイルを追加できました。Origin 2015以降、このフォルダにユーザーファイルを追加することはできません。Originの起動時にファイルをコンパイルして自動的にリンクしたい場合は、これらのファイルをUser [Autoload]フォルダに追加する必要があります。
User [AutoLoad]フォルダにファイルを追加するには次のようにします。
- (コードビルダー内の) User [AutoLoad] フォルダを右クリックして、ファイルの追加を選択します。
- 他のワークスペースフォルダからファイルをドラッグして、 User [AutoLoad]フォルダにドロップします。
- run.LoadOC()オブジェクトを使用します。
Note: User [AutoLoad]フォルダにファイルを追加すると、[OriginCAuto]というセクションがUser Files フォルダのOrigin.iniファイルに追加されます。User [AutoLoad]からファイルを同時に削除し、Origin.iniから追加された[OriginCAuto]を削除するには、次の LabTalkコマンドを実行します。
run -cra // システムフォルダファイルには影響しません |
Origin起動時にワークスペースをビルド
起動時にビルドオプションは、Originの起動時に最後に開いたコードビルダーワークスペースをビルドします。
Originが起動したときに、Origin CワークスペースのSystemフォルダの内容を確認し、変更が見つかったら、コンパイルとリンクをしようとします。 また、起動にビルドオプションを有効にして、Userフォルダ内のファイルにこの手順を行うことができます。
- コードビルダを実行します。
- ワークスペースが見えていない場合、表示メニューのワークスペースを選びます。
- Origin Cワークスペースを右クリックします。
- 起動にビルドの項目がチェックされていない場合、クリックします。
次回Originを起動すると、Userフォルダ内のファイルがチェックされ、変更があったファイルをコンパイルリンクします。
Origin起動時にソースファイルをビルド
次の操作方法で、起動時にOrigin Cソースファイルをロードし、コンパイルするために Origin.ini ファイルを編集します。
- Originが開いていたら閉じます。ユーザファイルフォルダ内のOrigin.iniファイルを開開きます。このファイルはユーザファイルフォルダにあります。コマンドウィンドウで %Y= と入力して<Enter>で実行すると、ユーザファイルフォルダの場所を確認できます。
- [Config] セクションで、OgsN = OEvents の行の先頭にあるセミコロン(;)をとり、以下のようにします。
Ogs1 = OEvents ; Ogs2 = OEvents ; Origin can trigger multiple system events ; Uncomment this line and implement event handlers in OEvents.ogs保存してファイルを閉じます。
- Originのインストールフォルダにある、OEvents.ogs を開きます。[AfterCompileSystem]セクションに以下の行を追加します。
run.LoadOC(Originlab\AscImpOptions, 16);
OEvents.ogsをユーザーファイルフォルダ(編集したOrigin.iniファイルと同じ場所)に保存し、エディタを閉じます。 - Originを再度起動し、コードビルダを開きます。Temporaryフォルダに3つのファイルがあります。AscImpOptions は、fu_utils.c と Import_utils.c に依存するので、コンパイラはこれら2つのファイルを一緒にAscImpをコンパイルします。詳細はLabTalkヘルプで、 run.LoadOCを検索して確認してください。
または、ワークスペースのUser [AutoLoad]フォルダを使用してください。フォルダに追加されたファイルは、Originの起動時に自動的にロードされます(上記参照)。
スクリプトでビルドする
LabTalkスクリプトでOrigin Cを呼び出したい場合、ソースファイルのコンパイルとリンクが完了している必要があります。ソースファイルをコードビルダに追加せずにコンパイルおよびリンクする場合は、LabTalkコマンド Run.LoadOC を使用します。例:
- ファイル: 新規ワークスペースを選択して新しいワークスペースを作成します。 ここでは、Temporary フォルダは空です。
- コマンドウィンドウで、次のスクリプトを実行します。すると dragNdrop.c ファイルとその関連ファイルすべてがTemporaryフォルダにロードされ、コンパイルされます。
if(run.LoadOC(OriginLab\dragNdrop.c, 16) != 0) { type "Failed to load dragNdrop.c!"; return 0; }
エラーを識別する
コードビルダでソースファイルをコンパイルリンクするとき、コンパイルおよびリンクの結果はコードビルダの出力ウィンドウに表示されます。
コンパイルとリンクが成功した場合は、コンパイルされたソースファイルが出力ウィンドウに一覧表示されます。 完了! と表示され、問題がなかったことが分かります。
コンパイルおよびリンク処理中にエラーが発生した場合、出力ウィンドウにファイル名、行番号、発生したエラーが表示されます。 出力ウィンドウ内のエラー行をダブルクリックすると、ソースファイルをアクティブにし、エラーを含むコード行にカーソルを移動します。
