On Sep 1, 2011, at 3:47 PM, Matúš Kukan wrote:
On 1 September 2011 15:14, Jenei Gábor <jengab@elte.hu> 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
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.