Compiling a Windows DLL With Support for Parquet Queries #2533
-
I have been poking around in the repo and issues trying to determine if it is feasible to compile a Windows DLL with the Parquet extension included with the ultimate goal of using it in a .NET project. My knowledge of C++ is from a brown book I read 1993, so I am slightly behind the times! But I was able to compile the full build on Windows just using what I found in your If I simply:
I get lots of errors complaining about redefinitions:
I am assuming this means it is getting confused by the types in the amalgamation and the main code. So, I tried building my own make file with just the needed files:
But this is giving me headaches with inconsistent linkages making me think this isn't prepped for being a windows DLL:
Any suggestions on what path might be the most fruitful here? Using DuckDB to query Parquet files is going to save me some serious work so I don't mind banding my head against the wall for a bit more - but I assume someone else has already thought about this a bit more and might be able to tell me if there is ongoing work or if such a thing is possible for a C++ novice to tackle. Thanks! |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 1 reply
-
EDIT: This actually does work - I just had my head somewhere it normally isn't supposed to be. Have not tested the Parquet extension though. So I did make some progress on this. I was finally able to create a DLL from amalgamated files the with this CMakeList file:
I dumped the PDB file contents and verified that at least there are symbols from both amalgamated files there. But, when I try and actually use in a .NET application (C#), I am unable to use any of them.
Yields:
So the calling convention is off or something. |
Beta Was this translation helpful? Give feedback.
-
So I added my own end point to load the parquet extension:
It compiles and even runs. I am having some stability issues with the created DLL's even without calling (or including) this endpoint so I need to sort that out as well. |
Beta Was this translation helpful? Give feedback.
So I added my own end point to load the parquet extension:
It compiles and even runs. I am having some stability issues with the created DLL's even without calling (or including) this endpoint so I need to sort that out as well.