[GCC-XML] gccxml, export/import symbols
Brad King
brad.king at kitware.com
Fri Nov 4 16:03:20 EST 2005
Nicolas Hognon wrote:
> #define VK_MODULE_EXPORT __declspec(dllexport)
>
> class Class1
> {
> public:
> VK_MODULE_EXPORT Class1();
[snip]
> In this case I've got an error in the line VK_MODULE_EXPORT Class1();
> Here is my command line with errors
> gccxml.exe --gccxml-compiler msvc71 -fxml=test.xml test.h
> test.h:14: error: declaration does not declare anything
> test.h:14: error: syntax error before `)' token
When gccxml simulates the MSVC 7.1 preprocessor it transforms
__declspec(...) into __attribute__((...)) because that is the syntax the
internal GCC parser uses to attach attributes like dllexport. The
problem you are seeing is that GCC wants the attributes for constructors
to come AFTER the declaration:
class Class1
{
public:
Class1() VK_MODULE_EXPORT;
...
};
Unfortunately this is a limitation of gccxml's implementation. You can
work-around it like this:
#if defined(__GCCXML__)
# define VK_MODULE_EXPORT_METHOD(x) x VK_MODULE_EXPORT
#else
# define VK_MODULE_EXPORT_METHOD(x) VK_MODULE_EXPORT x
#endif
class Class1
{
public:
VK_MODULE_EXPORT_METHOD(Class1());
...
};
Something like this would have to be done to get the code to work on a
MinGW or Cygwin compiler anyway.
-Brad
More information about the gccxml
mailing list