OpenXLSX(Linux/Visual Studio C++) build 成功
OpenXLSX は Linux/Windows でコンパイル可能な, Excel ファイルを操作するtめのC++ ライブラリである。Excel プロセスを実行することなく操作が可能だ。
さて ライブラリの make file を使えばビルドはできるのだが、かなり makefile の多層構造となっておるので、直接利用しにくい。
結論いうと, “c++” (GCC) に、特殊なオプションをつければコンパイルできた。
/usr/bin/c++ -DOPENXLSX_STATIC_DEFINE -I../OpenXLSX -fvisibility=hidden -fvisibility-inlines-hidden -std=c++17 -o Demo1.cpp.o -c Demo1.cpp
でコンパイルし、
/usr/bin/c++ Demo1.cpp.o -o Demo1 ../OpenXLSX/libOpenXLSX.a
でリンク。実行ファイル作成される。
この添付ファイルZIPには ライブラリのソースコード群は消してあるが、静的ファイル(a)・ヘッダファイルがあればいいので、不要。
なお実行ファイルは、 ubuntu 22.04 で実行できた。Windows Visual Studio に関しては sln を作ったので、このページの最下部のとおり。
遺補1
https://github.com/troldal/OpenXLSX から取得した段階では、静的ファイルは作られていないが、トップディレクトリで以下のコマンドを実行すると、
mkdir build
cd build
cmake ..
cmake --build . --target OpenXLSX --config Release
オブジェクト(.o) 群と、それらをまとめた、libOpenXLSX.a が作成される。
ユーザサイドでは、libOpenXLSX.a と hpp (ヘッダファイル) があればよろしいので、一度ライブラリをコンパイルすれば、あとは前述の添付プロジェクトをもとに、つくっていけばよい。
Visual Studio において
まず ライブラリを毎回ビルドすることなどないと考えられるので、不要なものは削除した sln (そりゅーしょん)の添付ファイルZIPする。
プロジェクトは sample 1つのみ。 Lib は output の実行ファイルと同じ dir にある。あとはプロジェクトの include path を変更して調整する。
v143vs2022_OpenXls(未アップただしライブラリが C++17 以降の記法のため, v143 以降の toolchain 、たとえば VS2019 以降でしか使えない。