-
Notifications
You must be signed in to change notification settings - Fork 20
Cannot build on Windows #13
Cannot build on Windows #13
Comments
Hey @jawilson, this gstreamer plugin was not initially intended for use on Windows, however theres no reason this should not be able to be built on Windows. I've tried replicating your build steps and I'm also running into errors, but I'm not able to replicate the exact build error message you've shown here yet (I'm getting filepath parsing issues instead). I'll try get around these issues and get back to you soon once I can reproduce the error. |
Thanks @louisharris led me know if there is anything I can do to help. |
Hey @jawilson just out of curiosity, did you build AWS SDK with the same compiler you use for building the GStreamer plugin? C++ doesn't standarize ABI (e.g. mangling can be different across different compilers), so that might be a reason why the linker couldn't find those symbols. |
@loganek yes, everything is being build with MSVC 2019. While different compilers would explain static linking issues, I'm not sure why it's failing to find |
I'm in a similar situation as @jawilson. When I attempt the first route to building If you manually patch the affected Moreover, the linker starts spitting warnings that the library architecture |
Going the second route, building without shared libraries, the I've tried having Based on that issue then, I think we're stuck letting |
When building the Even with that set though, I still get the following LNK2001 errors:
|
Here's the build output I get if I apply the aforementioned patch (which only applies to the cpp package configs):
In that output we can see the
For giggles I tried adding to the top-level
From the above, you can see the I tried manually editing the package config file to point at |
Without this, gstawscredentials-1.0.lib is not generated by LINK.exe because no symbols are exported, and compilation fails. We can simply use the symbols exported by gstreamer in gst/gstconfig.h to do this correctly. Related to amzn#13
Windows import libraries are installed inside ARCHIVE_DIRECTORY, not LIBRARY_DIRECTORY. So we need to use that for libdir on Windows. Related to amzn/amazon-s3-gst-plugin#13
MSVC consumers of the shared library need to define this macro when linking to aws-cpp-sdk-* libs, or they will get undefined reference errors. Also doesn't hurt to define this with MinGW, so add it unconditionally on Windows. Related to amzn/amazon-s3-gst-plugin#13
Applying both these PRs will fix this issue: |
@nirbheek Thank you. Despite being able to compile both the SDK and the plugin, I'm still stuck in that
I've tried setting Do you have any suggestions? There were no apparent errors during the build. |
That usually happens because |
Yes, that was the problem (not having the SDK's |
Without this, gstawscredentials-1.0.lib is not generated by LINK.exe because no symbols are exported, and compilation fails. We can simply use the symbols exported by gstreamer in gst/gstconfig.h to do this correctly. Related to #13
I've tried as many things as I can think and I can't get this to build in Windows.
I had no problems build/installing aws-sdk-cpp.
When I build the SDK with:
and this project with:
I get:
Alternatively if I build the SDK with:
and this project with:
I get:
The text was updated successfully, but these errors were encountered: