【FMU】最小構成のMBD事例 第2章 その49【FMILibrary⑥】

【FMU】最小構成のMBD事例 第2章 その49【FMILibrary⑥】 事例
【FMU】最小構成のMBD事例 第2章 その49【FMILibrary⑥】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/

はじめに

前回はFMILibraryのビルドが失敗する原因を究明。
WinSDKのoffsetofマクロがC言語時に無効化されているのが原因だった。
とりあえず、自前でoffsetofマクロを定義することで乗り切ることとした。

今回は再度ビルドにチャレンジ。
問題無く通ると良いが・・・。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

FMILibraryのビルド再び

太郎くん
太郎くん

よし!
気を取り直してビルドだー!

フクさん
フクさん

ふむ。
どうやらビルドは通ったみたいだな。

C:\FMILibrary-2.0.3\build-fmi>cmake --build . --config MinSizeRel --target install
.NET Framework 向け Microsoft (R) Build Engine バージョン 15.9.21+g9802d43bc3
Copyright (C) Microsoft Corporation.All rights reserved.

  Checking Build System
  Building Custom Rule C:/FMILibrary-2.0.3/ThirdParty/c99_snprintf/CMakeLists.txt
  snprintf.c

/* 省略*/

  fmiimport.vcxproj -> C:\FMILibrary-2.0.3\build-fmi\MinSizeRel\fmiimport.lib
  Generating fmilib_dummy.c
  Building Custom Rule C:/FMILibrary-2.0.3/CMakeLists.txt
  fmilib_dummy.c
  fmilib.vcxproj -> C:\FMILibrary-2.0.3\build-fmi\MinSizeRel\fmilib.lib
  Building Custom Rule C:/FMILibrary-2.0.3/CMakeLists.txt
  jm_vector_test.c
     ライブラリ C:/FMILibrary-2.0.3/build-fmi/MinSizeRel/jm_vector_test.lib とオブジェクト C:/FMILibrary-2.0.3/build-fmi/MinSizeRel/jm_vector_test.exp を作成中
  jm_vector_test.vcxproj -> C:\FMILibrary-2.0.3\build-fmi\MinSizeRel\jm_vector_test.exe
  Building Custom Rule C:/FMILibrary-2.0.3/CMakeLists.txt
太郎くん
太郎くん

fmiimport.lib、fmilib.lib、jm_vector_test.exe
ってのが無事ビルドできたって感じかな。
それぞれが何者かは知らないけど。

FMILibraryのインストール

フクさん
フクさん

このログに続いてインストールのログが続いているな。

  -- Install configuration: "MinSizeRel"
  -- Installing: C:/fmilib2/lib/fmilib.lib
  -- Installing: C:/fmilib2/lib/fmilib_shared.lib
  -- Installing: C:/fmilib2/lib/fmilib_shared.dll
  -- Up-to-date: C:/fmilib2/doc/FMILIB_Readme.txt
  -- Up-to-date: C:/fmilib2/doc/FMILIB_License.txt
  -- Up-to-date: C:/fmilib2/doc/FMILIB_Acknowledgements.txt
  -- Installing: C:/fmilib2/include/fmilib_config.h
  -- Up-to-date: C:/fmilib2/include/fmilib.h
  -- Up-to-date: C:/fmilib2/./include
  -- Up-to-date: C:/fmilib2/./include/FMI
  -- Up-to-date: C:/fmilib2/./include/FMI/fmi_import_context.h
  -- Up-to-date: C:/fmilib2/./include/FMI/fmi_import_util.h
  -- Up-to-date: C:/fmilib2/./include/FMI1
  -- Up-to-date: C:/fmilib2/./include/FMI1/fmi1_import.h
  -- Up-to-date: C:/fmilib2/./include/FMI1/fmi1_import_capabilities.h
  -- Up-to-date: C:/fmilib2/./include/FMI1/fmi1_import_capi.h
  -- Up-to-date: C:/fmilib2/./include/FMI1/fmi1_import_convenience.h
  -- Up-to-date: C:/fmilib2/./include/FMI1/fmi1_import_cosim.h
  -- Up-to-date: C:/fmilib2/./include/FMI1/fmi1_import_type.h
  -- Up-to-date: C:/fmilib2/./include/FMI1/fmi1_import_unit.h
  -- Up-to-date: C:/fmilib2/./include/FMI1/fmi1_import_variable.h
  -- Up-to-date: C:/fmilib2/./include/FMI1/fmi1_import_variable_list.h
  -- Up-to-date: C:/fmilib2/./include/FMI1/fmi1_import_vendor_annotations.h
  -- Up-to-date: C:/fmilib2/./include/FMI2
  -- Up-to-date: C:/fmilib2/./include/FMI2/fmi2_import.h
  -- Up-to-date: C:/fmilib2/./include/FMI2/fmi2_import_capi.h
  -- Up-to-date: C:/fmilib2/./include/FMI2/fmi2_import_convenience.h
  -- Up-to-date: C:/fmilib2/./include/FMI2/fmi2_import_type.h
  -- Up-to-date: C:/fmilib2/./include/FMI2/fmi2_import_unit.h
  -- Up-to-date: C:/fmilib2/./include/FMI2/fmi2_import_variable.h
  -- Up-to-date: C:/fmilib2/./include/FMI2/fmi2_import_variable_list.h
  -- Up-to-date: C:/fmilib2/./include
  -- Up-to-date: C:/fmilib2/./include/FMI
  -- Up-to-date: C:/fmilib2/./include/FMI/fmi_util.h
  -- Up-to-date: C:/fmilib2/./include/FMI/fmi_version.h
  -- Up-to-date: C:/fmilib2/./include/FMI1
  -- Up-to-date: C:/fmilib2/./include/FMI1/fmi1_enums.h
  -- Up-to-date: C:/fmilib2/./include/FMI1/fmi1_functions.h
  -- Up-to-date: C:/fmilib2/./include/FMI1/fmi1_types.h
  -- Up-to-date: C:/fmilib2/./include/FMI2
  -- Up-to-date: C:/fmilib2/./include/FMI2/fmi2_enums.h
  -- Up-to-date: C:/fmilib2/./include/FMI2/fmi2_functions.h
  -- Up-to-date: C:/fmilib2/./include/FMI2/fmi2_types.h
  -- Up-to-date: C:/fmilib2/./include/FMI2/fmi2_xml_callbacks.h
  -- Up-to-date: C:/fmilib2/./include/JM
  -- Up-to-date: C:/fmilib2/./include/JM/jm_callbacks.h
  -- Up-to-date: C:/fmilib2/./include/JM/jm_named_ptr.h
  -- Up-to-date: C:/fmilib2/./include/JM/jm_portability.h
  -- Up-to-date: C:/fmilib2/./include/JM/jm_stack.h
  -- Up-to-date: C:/fmilib2/./include/JM/jm_string_set.h
  -- Up-to-date: C:/fmilib2/./include/JM/jm_types.h
  -- Up-to-date: C:/fmilib2/./include/JM/jm_vector.h
  -- Up-to-date: C:/fmilib2/./include/JM/jm_vector_template.h
  -- Up-to-date: C:/fmilib2/include/FMI1
  -- Up-to-date: C:/fmilib2/include/FMI1/fmiFunctions.h
  -- Up-to-date: C:/fmilib2/include/FMI1/fmiModelFunctions.h
  -- Up-to-date: C:/fmilib2/include/FMI1/fmiModelTypes.h
  -- Up-to-date: C:/fmilib2/include/FMI1/fmiPlatformTypes.h
  -- Up-to-date: C:/fmilib2/include/FMI2
  -- Up-to-date: C:/fmilib2/include/FMI2/fmi2Functions.h
  -- Up-to-date: C:/fmilib2/include/FMI2/fmi2FunctionTypes.h
  -- Up-to-date: C:/fmilib2/include/FMI2/fmi2TypesPlatform.h
太郎くん
太郎くん

C:/fmilib2/以下にライブラリとヘッダファイルがインストールされた感じか。

フクさん
フクさん

うん。
ライブラリを使う際はこのディレクトリを参照するようにすれば、使えるはずだよ。

太郎くん
太郎くん

一応、FMILibraryが出来たとこまでは来たけど、
この後は?
実際に使っていくのだと思うのだけど。

フクさん
フクさん

そうだね。
FMILibraryビルド時にサンプルプロジェクトも生成されているんで、
それベースで話をしていく感じかな。

太郎くん
太郎くん

ほう。
サンプルプロジェクトがあるのか。
だったら進めやすいかも。

まとめ

フクさん
フクさん

まとめだよ。

  • 再びFMILibraryのビルドにチャレンジ。
    • 今回は無事ビルドが通った。
      • ライブラリが生成されたのも確認。
    • その後、指定したインストール先にライブラリ及びヘッダファイルが配置された。
  • FMILibraryビルド時にサンプルプロジェクトが生成されているので、今後はこれをベースに話を進める予定。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました