Hi.

So, I recently started to write a "pluggable" library. You can check it
from here:
http://quickgit.kde.org/index.php?p=scratch%2Fromariorios%2Flibkodri.git&a=summary.

It was all good until I tried to write a dummy plugin for it (currently
available in the dummy_packagesource branch of the above repo). It was a
pretty trivial plugin, it just implemented the pure virtual functions from
the interface. But I kept getting this error:

[100%] Building CXX object
packagesources/CMakeFiles/kodri_packagesource_dummy.dir/dummypackagesource.o
In file included from
/home/kde4/kde-master-install/include/kodri/abstractpackagesource.h:29:0,
                 from
/home/kde4/kdesrc/libkodri/packagesources/dummypackagesource.h:23,
                 from
/home/kde4/kdesrc/libkodri/packagesources/dummypackagesource.cpp:20:
/home/kde4/kde-master-install/include/kodri/version.h:31:28: error:
expected initializer before ‘:’ token
/home/kde4/kdesrc/libkodri/packagesources/dummypackagesource.cpp:1381:1:
error: expected ‘}’ at end of input
make[2]: **
[packagesources/CMakeFiles/kodri_packagesource_dummy.dir/dummypackagesource.o]
Erro 1
make[1]: ** [packagesources/CMakeFiles/kodri_packagesource_dummy.dir/all]
Erro 2
make: ** [all] Erro 2

I then suspected that the KODRI_EXPORT macro wasn't being expanded when the
exported classes were included outside the library. Then I manually
replaced KODRI_EXPORT by __attribute__ ((visibility("default")) and, as I
suspected, the error vanished. Of course, other errors appeared afterwards,
but I'll try to solve them later.

My question is: why doesn't the macro expand? I followed the techbase
tutorial on creating new libraries step by step, so I can't see where I got
it wrong.

Best regards.

-- 
Luiz Romário Santana Rios
>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<

Reply via email to