Dear Longhui, The import library is currently named libgmsh.dll.a. So to compile the "simple.cpp" example with Microsoft Visual Studio 2017 in the Visual Studio shell, you would do:
C:\gmsh-git-Windows64-sdk> ren include\gmsh.h_cwrap include\gmsh.h C:\gmsh-git-Windows64-sdk> cl /Iinclude share\doc\gmsh\demos\api\simple.cpp lib\libgmsh.dll.a C:\gmsh-git-Windows64-sdk> cd lib C:\gmsh-git-Windows64-sdk\lib> ..\simple.exe Christophe > On 30 Jul 2018, at 15:36, Max Orok <[email protected]> wrote: > > Hi Longhui, > > This might not be super helpful but here is the compiler command to get > t1.cpp to compile fresh out of the 64bit SDK using MinGW: > > cd /gmsh-git-Windows64-sdk > g++ t1.cpp -Iinclude -Llib -lgmsh > > Please note I copied t1.cpp to the top level directory above bin, include, > lib, share. > -I specifies the include directory, -L the dll directory, and -l the actual > dll to link. > > Perhaps you can try with cl.exe on the command line with the corresponding > flags? > > Max > > > > > On Sun, Jul 29, 2018 at 9:16 PM, Li Longhui <[email protected]> wrote: > Hi Max, > > > > Thank you for your quick feedbacks. > > > > I followed your advice trying with the wrap file but it behaved same. > > > > I did more research with findings below. > > > > On windows, to release a dynamic library, three types of files are to be > released. > > 1) The header file .h > > In this file declarations of APIs will be described, such as > > gmsh::initialized() > > this file can be included in source files using APIs within. > > > > 2) The linkage file .lib > > This file tells in linkaging stage which .dll file and which APIs should be > linkaged and accordingly will be called during execution. > > This file will always be generated together with the .dll file. > > Actually there is some tool from mingw that will generating .lib file by > extracting information from .dll file > > > > 3) The executable file .dll > > This is the actual executable file and used only during execution stage. > > > > Following the findings above, I was not able to find the corresponding .lib > file from the .dll file. > > > > As this is a generic issue, I am wondering if someone can help. > > > > Please feel free to let me know in case of any issues. > > > > Thanks Much, > > Longhui > > > > 发件人: Max Orok [mailto:[email protected]] > 发送时间: 2018年7月30日 5:34 > 收件人: Li Longhui <[email protected]>; [email protected] > 主题: Re: [Gmsh] Having problems linking gmsh sdk libraries > > > > Hello Longhui, > > > > Not a VS expert but have you tried using the cwrap versions of these files? > > I got it to work on Windows with that method. > > It is explained nicely here: > https://gitlab.onelab.info/gmsh/gmsh/tree/master/api > > > > The following is taken from the relevant readme.md file: > > > > "The additional file `gmsh.h_cwrap' redefines the C++ API in terms of the C > API. > This is provided as a convenience for users of the binary Gmsh SDK whose C++ > compiler ABI is not compatible with the ABI of the C++ compiler used to create > the SDK. To use these C++ bindings of the C API instead of the native C++ API, > simply rename `gmsh.h_cwrap' as `gmsh.h'. Note that this will lead to > (slightly) > reduced performance compared to using the native Gmsh C++ API, as it entails > additional data copies between the C++ wrapper, the C API and the native C++ > code." > > > > The libgmsh.dll is essential for sure, not sure about the .lib. I also had to > put the gmsh-3.0.dll in the same folder as my executable. > > And if not, there's always Python! > > > > Good luck! > > Max Orok > > > > On Sun, Jul 29, 2018 at 10:55 AM, Li Longhui <[email protected]> wrote: > > Greetings, > > > > This is Longhui. > > > > I am evaluating the gmsh sdks with C/C++ on windows, and having problems > linking the SDK libraries. > > > > I am wondering if some experts can have a look? Thanks. > > > > Here are what I have done > > 1. In Visual Studio 2015, create a function as below > > > > <image001.png> > > 2. Configure the sdk include path and the sdk library path > > <image002.jpg> > > > > The codes can be built without compiling errors, but having linkage errors > > <image003.jpg> > > > > I have tried with both 32-bit and 64-bit sdks, and they have behaved exactly > same. > > > > Should I have the Can I have the two files > > libgmsh.dll > > libgmsh.lib > > > > Do we need a libgmsh.dll and libgmsh.lib file? > > > > Any advices will be greatly appreciated/ > > > > Thanks Much, > > Longhui > > > _______________________________________________ > gmsh mailing list > [email protected] > http://onelab.info/mailman/listinfo/gmsh > > > > > -- > > Max Orok > > Summer Student > > www.mevex.com > > <image004.jpg> > > > > > -- > Max Orok > Summer Student > www.mevex.com > > > _______________________________________________ > gmsh mailing list > [email protected] > http://onelab.info/mailman/listinfo/gmsh — Prof. Christophe Geuzaine University of Liege, Electrical Engineering and Computer Science http://www.montefiore.ulg.ac.be/~geuzaine Free software: http://gmsh.info | http://getdp.info | http://onelab.info
_______________________________________________ gmsh mailing list [email protected] http://onelab.info/mailman/listinfo/gmsh
