eProsima / Fast-CDR

eProsima FastCDR library provides two serialization mechanisms. One is the standard CDR serialization mechanism, while the other is a faster implementation of it. Looking for commercial support? Contact info@eprosima.com
Apache License 2.0
142 stars 100 forks source link

Fix: function definition is marked dllimport #210

Open felixf4xu opened 4 months ago

felixf4xu commented 4 months ago

Fix #209

felixf4xu commented 3 months ago

Thanks for the review.

At the same time, I have a question about the compiling switches. The issue only happens when fastcdr is built as a shared dll (on Windows), in ros2, it's BUILD_SHARED_LIBS. I'm just curious, this project has all code ready (the difinition of Cdr_DllAPI and all the other stuff) but this issue show that maybe it's never compiled on Windows as shared dll.

ROS2 actually supports Windows, maybe it's build as a static lib on Windows?

The reason why I asked is that I actually have begun to work on fastrtps as well, it has even more issues like this one, but again, fastrtsp seems to be ready for windows shared dll because it already has all the code there, just not tested, maybe nobody wants to build it on Windows as shared dll?

felixf4xu commented 3 months ago

And I see the github actions for this fastcdr project, Windows is also listed there. I'm curious if it's configured to compile as static lib?

I'm not familiar with github actions, is it possible to set some actions to build on windows as shared dll?

MiguelCompany commented 3 months ago

@felixf4xu It might be something related with the compiler.

As stated in the supported platforms here, our tier 1 build system on Windows is Visual Studio 2019.

On that tier 1 platform we pass the CI with BUILD_SHARED_LIBS=ON, so the DLL system is always tested.

The error you mention in #209 is usually reported by MinGW. If you are building in MinGW then bear in mind that it is not an officially supported platform.

richiprosima commented 3 months ago

Build status:

richiprosima commented 3 months ago

Build status:

MiguelCompany commented 2 days ago

@mergifyio rebase

mergify[bot] commented 2 days ago

rebase

✅ Branch has been successfully rebased