RDKLIBS changed:
- ... -lRDGeometryLib -lRDGeneral -lDepictor
+ ... -lDepictor -lRDGeometryLib -lRDGeneral
And lo, there was much rejoicing and slapping of foreheads - that did
it. Thanks!
Cheers
-- Jan
On 2014-02-23 12:56, Greg Landrum wrote:
Jan,
It is probably the order of the libraries (static linking can
introduce that).
Try moving the depiction lib to the beginning of the libs list
-greg
On Sunday, February 23, 2014, Jan Holst Jensen <[email protected]
<mailto:[email protected]>> wrote:
Hi Greg,
I now have a working version of mol_to_ctab() - except when I add
in depiction generation. There is a linking issue I don't understand.
In adapter.cpp I have added this function that implements the C++
part of mol_to_ctab():
extern "C" char *
makeCtabText(CROMol data, int *len, bool
createDepictionIfMissing) {
ROMol *mol = (ROMol*)data;
try {
if (createDepictionIfMissing && mol->getNumConformers() ==
0) {
RDDepict::compute2DCoords(*mol);
}
StringData = MolToMolBlock(*mol);
} catch (...) {
ereport(WARNING,
(errcode(ERRCODE_WARNING),
errmsg("makeCtabText: problems converting
molecule to CTAB")));
StringData="";
}
*len = StringData.size();
return (char*)StringData.c_str();
}
But, postgres then won't start (I preload the 'rdkit' library) and
in the postgres startup log I see a complaint about unresolved
symbols. Those are caused by the RDDepict::compute2DCoords() call.
If I compile without the RDDepict::... line, all is well, and the
cartridge loads.
I check the built rdkit.so (with the depiction call):
[jhje@bcfregbuild rdkit]$ nm -D rdkit.so | grep " U "|grep RD
U
_ZN6RDGeom11Transform2D12SetTransformERKNS_7Point2DES3_S3_S3_
U
_ZN6RDGeom11Transform2D12SetTransformERKNS_7Point2DEd
U
_ZNK6RDGeom11Transform2D14TransformPointERNS_7Point2DE
[jhje@bcfregbuild rdkit]$
So I do a naive search for those unresolved symbols in rdkit's lib
directory to see what libs are needed:
[jhje@bcfregbuild lib]$ grep
_ZN6RDGeom11Transform2D12SetTransformERKNS_7Point2DES3_S3_S3_ *.a
Binary file libDepictor_static.a matches
Binary file libRDGeometryLib_static.a matches
[jhje@bcfregbuild lib]$ grep
_ZN6RDGeom11Transform2D12SetTransformERKNS_7Point2DEd *.a
Binary file libDepictor_static.a matches
Binary file libRDGeometryLib_static.a matches
[jhje@bcfregbuild lib]$ grep
_ZNK6RDGeom11Transform2D14TransformPointERNS_7Point2DE *.a
Binary file libDepictor_static.a matches
Binary file libRDGeometryLib_static.a matches
[jhje@bcfregbuild lib]$
I have added Depictor to the RDKLIBS in the Makefile -
RDGeometryLib was already there:
RDKLIBS = ${INCHILIBS} [...] -lDataStructs
-lRDGeometryLib -lRDGeneral *-lDepictor*
So I would have thought that all was well. But I still have these
three unlinked symbols after adding the Depictor lib and
rebuilding. Some secondary dependencies ... ? I hope that I can
slap my forehead and say "DUH" when I am told the reason why...
Cheers
-- Jan
------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk
_______________________________________________
Rdkit-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss