Greg,

Could you please give me an order of all libraries? Say, I want to link all
RDKit static libraries. I know most of which could be unnecessary, but I
just want to make my situation easy.  So, if I cannot figure out a better
plan, this way at least works.

Thanks.
Yingfeng

On Mon, Mar 14, 2016 at 8:16 AM, Greg Landrum <greg.land...@gmail.com>
wrote:

>
>
> On Sat, Mar 12, 2016 at 5:00 AM, Yingfeng Wang <ywang...@gmail.com> wrote:
>
>> Greg,
>>
>> Thanks. Your suggestion solves my problem. I add the following part in my
>> compiling command.
>>
>> -L/Users/yingfeng/software/RDKit/rdkit-Release_2015_03_1/lib
>> -lRDInchiLib  -lInChi -lGraphMol -lRDGeneral
>>
>> and the complete compiling command is
>>
>> g++ -Wall -O2 -std=c++11  -I
>> /Users/yingfeng/software/RDKit/rdkit-Release_2015_03_1/Code -I
>> /Users/yingfeng/software/RDKit/rdkit-Release_2015_03_1/External -I
>> /usr/local/Cellar/boost/1.60.0_1/include
>> -L/Users/yingfeng/software/RDKit/rdkit-Release_2015_03_1/lib -lRDInchiLib
>> -lInChi -lGraphMol -lRDGeneral  -o MYTEST main.cpp
>>
>> Is there a way to figure out which library I should link? Actually, my
>> backup plan is to link all libraries in
>> /Users/yingfeng/software/RDKit/rdkit-Release_2015_03_1/lib
>>
>
> That's one approach, but it's kind of overkill. :-)
> The big thing is to know which library the functionality you are calling
> comes from. You can generally tell this from the header files (i.e. if you
> include something from "DataStructs", then you need to include the
> DataStructs library). this isn't perfect because some libraries have
> dependencies on others, but it often works The other approach is to look in
> the RDKit source code at the CMakeLists.txt file for the libraries you are
> using and look to see which extra libraries they include when building the
> tests.
>
> This isn't very well documented. I think this kind of documentation is
> tricky to generate, so I don't want to do it unless it's going to help a
> large number of people, and it's not at all clear to me how many C++ RDKit
> users there are.
>
> By the way, is there a way to guarantee that users using my binary file
>> (e.g. MYTEST in this case) do not need to install RDKit? I tried -static,
>> but it didn't work. For example, I hope a user can run MYTEST on another
>> Mac without RDKit.
>>
>
> If you link against the _static version of the libraries (i.e.
> -lGraphMol_static instead of -lGraphMol), then you should end up with a
> version that doesn't require an RDKit install to run. It can be trickier to
> get these commands right because on many (all?) systems, there is an order
> dependency to static linkage. So since SmilesParse_static depends on
> GraphMol_static, GraphMol_static needs to appear *after* SmilesParse_static
> in the link line.
>
> I hope this helps,
> -greg
>
>
>
------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to