On Sep 1, 2011, at 3:47 PM, Matúš Kukan wrote: > On 1 September 2011 15:14, Jenei Gábor <[email protected]> wrote: >> Hi all, >> >> As I tried to compile vcl module with raised dbglevel I found out the >> following error at linking: >> >> >> /home/LOff/libo/workdir/unxlngi6.pro/CxxObject/vcl/unx/headless/svpgdi.o: In >> function `dbgOut(boost::shared_ptr<basebmp::BitmapDevice> const&)': >> svpgdi.cxx:(.text._Z6dbgOutRKN5boost10shared_ptrIN7basebmp12BitmapDeviceEEE[dbgOut(boost::shared_ptr<basebmp::BitmapDevice> >> const&)]+0x13a): undefined reference to >> `basebmp::debugDump(boost::shared_ptr<basebmp::BitmapDevice> const&, >> std::basic_ostream<char, std::char_traits<char> >&)' >> collect2: ld returned 1 exit status >> make: *** >> [/home/LOff/libo/workdir/unxlngi6.pro/LinkTarget/Library/libvclplug_svplo.so] >> Error 1 >> >> As I saw in cpp code this should be ok, so probably basebmp debug.cxx is not >> marked for linking in the project. Could someone look at this issue who >> knows make files? >> > That's not about makefiles. debugDump() is not marked for exporting, > you can do this in cxx file with SAL_DLLPUBLIC_EXPORT > or in hxx files. But in hxx you need to use library specific macro defined as > in > http://opengrok.libreoffice.org/xref/core/basebmp/inc/basebmp/bitmapdevice.hxx#42 > It's more complicated because of error in windows compilers, I think. > > I have pushed this one. ( > http://cgit.freedesktop.org/libreoffice/core/commit/?id=e21822008dff0c618e8947d7343bc70d51d47ec3 > )
You cannot do it that way -- it will not work on Windows. See <http://wiki.services.openoffice.org/wiki/Symbol_Visibility> for details (in short, you need the BASEBMP_DLLPUBLIC/BASEBMP_DLLIMPLEMENTATION stuff in the header file if you want to be able to link against the function on Windows). Will try to remember to prepare a proper patch tomorrow, unless someone beats me to it… -Stephan _______________________________________________ LibreOffice mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice
