-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 W Allan Edwards wrote: > You then tell me to go define that symbol in my c source file....
No. You have to have it defined when compiling SQLite. Defining it elsewhere such as your C source will have no effect. It affects the compilation of SQLite only. > I do recompile, reinstall (sudo make install), How exactly are your ensuring that SQLITE_ENABLE_COLUMN_METADATA is defined for the SQLite compilation? > (although I still need to check that the entry point actually > was compiled in still) I already explained how to do that using 'nm --external-only' > or do you guys keep ordinal order in your sqlite dll to keep backwards > compability?) Linking by ordinal is a Windows+COFF thing. Linux uses ELF - http://en.wikipedia.org/wiki/Executable_and_Linkable_Format Versioning is done by the shared library file name. If you look in /usr/lib and other locations you can see how the versioning is done. Use a long listing and you'll also see symbolic links. > why am I using the latest sqlite binaries on both platforms but one has > this dllimport (api offering) but linux does not by default. I have already explained that several times. > Why have the sqlite guys not compiled with the same flags with this api feature on both platforms. The "SQLite guys" did not compile the DLL for your Linux platform. Linux distributions pick the SQLite version and flags, and they produce the shared library. It does so happen that configure doesn't have the flag enabled by default and that was reported as http://www.sqlite.org/cvstrac/tktview?tn=3635 but it is no big deal. This functionality is optional. That is why you have to define a preprocessor flag in order to get it. > So I thought, I better notify them of this. There are exactly two things that will solve your problem: 1 - The mono bindings that you use gracefully accepting that the symbols may not be in the shared library they are using and handling as appropriate. This is easy to do because the missing symbols are detected as an exception. 2 - The SQLite DLL that you are using having SQLITE_ENABLE_COLUMN_METADATA defined during its compilation. No amount of whining will change that. > maybe the groups will make the same code at the .NET managed level run the > same on all platforms via > releasong compiled code that had the same defines on the c side. SQLite works just fine the same way with the same defines. This is not and never has been a SQLite issue. There is no need for the SQLite team to do anything. > I just personally thought it was ambiguous for you guys to be releasing the same version lib > that works differently just because of platform? SQLite does not do that. SQLite behaves exactly the same with the same defines. I realise you find it hard to believe you aren't the only user of SQLite, but there are many many others. The defines are present so that they can customise the functionality present for their intended use. For example SQLite is used in some MP3 players that have very little RAM. Consequently they exclude all the functionality they aren't using. Heck some people even exclude the ability to parse SQL (prepared queries are stored in the database). Others do the opposite and include lots more stuff and bump various numbers a lot higher. > From my humble opinion, it would be nice from the business apps dev > perspective if the code you wrote that worked on mono windows worked > the same on linux It does work the same. If you require that SQLite be compiled with a certain set of flags (just as your mono bindings currently require that the library be compiled with SQLITE_ENABLE_COLUMN_METADATA) then the best approach is to provide the library tailored just the way you want it. Or report a bug to whoever does your bindings and ask them to deal with the situation appropriately. You keep talking about the code "working the same". The code does work the same. The issue you are having is the bindings complaining about a missing symbol. No SQLite code is invoked for a missing symbol - there is no difference in the SQLite code. The issue is in your bindings. > Sure, having knowledge is one thing, but having to use the vastness > of mine detracts from time I need to be using building apps to help > sqlite, ado.net sqlite, and mono look awesome by releasing more apps > on their technology. SQLite is already awesome. > At this point I am curious why you guys release a different lib of the > same version with different features for each given platform? "SQLite guys" did not do this. SQLite is the same for all platforms. Whoever compiles the library can choose to include or exclude functionality as appropriate to their platform. On Windows it just so happens that SQLITE_ENABLE_COLUMN_METADATA is something that is included and the Linux packagers (who are in no way "SQLite guys") decided not to include that. > And yeah.. I do get the tech... working on compilers (specifically > C/C++) will help you with tech realization at all levels! : - ) > But you adding that in is VERY helpful, it cuts the ambiguity in > your communication. I have no idea what means. Roger -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iEYEARECAAYFAkmPkIcACgkQmOOfHg372QQAgACeOkT7OE7gdCABNxRBZTowFTLh R4UAnRxpnCkj8X+ShsDHhyyiDVhmgSeK =Z2LE -----END PGP SIGNATURE----- _______________________________________________ sqlite-users mailing list [email protected] http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

