Closed Antivirus2k closed 7 years ago
I haven't used the codeblocks project files for a while but will check them again. However, as libgimli is building correctly, this is rather a BERT issue to be made on: https://gitlab.com/resistivity-net/bert/issues
The error message means that libgimli is compiled without the support for the libldl (basic linear solver) The codeblock project file is a little out of date (because we don't use it anymore) and does not support third party packages.
Absolutely correct. One could build libgimli and hence libgimli-based C++ applications that do not require solving sparse equation solvers (typically arising from boundary value problems of partial differential equations) but we do not really maintain this technique in favour of Python (that's why gimli is merely called the C++ core of pyGIMLi).
At any rate, we recommend building the code with cmake as documented. Once the third party packages (such as SuiteSparse providing fast equation solvers) are built, one can also work with Codeblocks after generating the project files dynamically (cmake -G "CodeBlocks - MinGW Makefiles"
). Then you should also be able to do the same for bert so that the binaries dcinv, dcmod and dcedit are compiled.
Thank you for your answers. I think that libldl supported by default CodeBlocks project "\mingw\gimli.cbp", because it has such options in "Build options" -> "Linker settings" -> "Link libraries": libtriangle.a, libldl.a, libcholmod.a, libcolamd.a, libamd.a, blas, lapack, psapi. In any case, I will try to create CodeBlocks projects with CMake.
Ok, all works fine after using CMake for create CodeBlocks project "libgimli.cbp" and exclude some small "Python-code" (as I said before, my purpose was to build command-line applications without Python) from gimli.cpp (inside "#ifdef PYTHON_FOUND"). For compiling bert part (dcinv, dcmod, dcedit) it is possible to use default CodeBlocks project "\mingw\bert.cbp" with changing option "Build options" -> "Linker settings" -> "Link libraries" from "libgimli" to "libgimli.dll.a". After that dcinv.exe works fine. Thank you!
great! Thanks a lot and please keep us updated on how cpp apps building goes. For building applications like the BERT apps you don't need prerequisites as boost, however, at least boost:threads speeds up computations by multi-threading a lot and is therefore recommended.
I want to use "gimli + bert" as a command-line applications (without Python) and I want to build them from source. I build libgimli using CodeBlocks project "\mingw\gimli.cbp". Then I build necessary applications from "bert". Application dcinv.exe with correct input data always halt with error:
terminate called after throwing an instance of 'std::lengtherror' what(): C:\gimli-master\src\ldlWrapper.cpp: 109 int GIMLI::LDLWrapper::initialize(GIMLI::RSparseMatrix&) not yet implemented gimli-0.9.0-win
Original dcinv.exe (from official binaries) works fine. What's wrong with my compilation? Maybe CodeBlocks project "\mingw\gimli.cbp" not correct? Thank you in advance.