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]<mailto:[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



[cid:[email protected]]

2.     Configure the sdk include path and the sdk library path

[cid:[email protected]]

The codes can be built without compiling errors, but having linkage errors
[cid:[email protected]]

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]<mailto:[email protected]>
http://onelab.info/mailman/listinfo/gmsh



--
Max Orok
Summer Student
www.mevex.com<http://www.mevex.com>

[图像已被发件人删除。]
_______________________________________________
gmsh mailing list
[email protected]
http://onelab.info/mailman/listinfo/gmsh

Reply via email to