On Jan 19, 2006, at 4:24 AM, D. Walsh wrote:
You don't have xsco installed, I've got the dev API, header files and libraries under an NDA.
In that case, your best bet is to ask whomever gave you the dev API.
it links against libxsco.so (now libxsco.dylib on my Mac)
Newer versions of the library include xsco_version() which returns a double so doing:
double some_variable = xsco_version();
works but in the older libraries this function is not available so it looks like they hard code a value however, this check method doesn't seem to work or locate the available function and even using !defined(xsco_version) didn't work so I'm not sure how to resolve this.
If the function is available but the macro is not defined, then define:
#define xsco_version() xsco_version()
If the function is available but not in one of their header files, then add
extern double xsco_version();
as well.
Being an XCode project I'm not sure how to use the autotools to determine if this function exists.
I didn't mean to use the autotools with Xcode to do this. Since you're (presumably) compiling this on your own machine, just check if the symbol exists in the library:
$ nm libxsco.dylib|grep _xsco_version
That said, I think you're probably okay just leaving it alone.
Apparently not, it doesn't find library functions using this method and a lot of the application functionality doesn't work.
I'm not sure I understand why. If it isn't defined somewhere, the macro should be defined to the hard coded value by the preprocessor macros. About the only situation that I could see this not working is if _xsco_version is defined but xsco_version is not and no xsco_version function exists. If that's the case, define:
#define xsco_version() _xsco_version()
Maybe I'm confusing you a little.