Aktywne Wpisy
BrakWolnegoLoginu +291
Laska z ktora sie umawialem od 4 miesiecy wysmiala mnie bo pojechalem z ojcem lvl 63 do Biskupina. Ja sam mam 28 lat i wracalem specjalnie do rodzicow zeby z nim na ten festyn pojechac, bo ojciec interesuje sie historia i zabieral nas na kazdy co roku. Powiedzialem jej, ze jak smieszy ja moja relacja to ma palic wroty. #rozowepaski #zwiazki #logikarozowychpaskow #niebieskiepaski #logikaniebieskichpaskow
Biblioteka rdkit nie ma porządnej dokumentacji do C++ API. Kilka przykładów w źródłach i tyle. Korzystając z przykładu zrobiłem minimalny kod który tylko tworzy obiekt MOL.
#include
#include
#include
#include
//#include
//#include
//#include
#include
#include
#include
using namespace RDKit;
//namespace io=boost::iostreams;
void readsmiles() {
std::string smiles="C1CCCC1";
RWMol *m;
m = SmilesToMol(smiles);
std::cout << m;
}
int main(int argc,char *argv[]) {
readsmiles();
}
Includy mocno na pałe, zakomentowałem tylko to co wyglądało na zupełnie zbędne.
Standardowa kompilacja działa. Polecenie:
Generuje działający kod. Wersje statyczne mają w nazwie sufix static. Jednak analogiczne polecenie
static -lFileParsersstatic -lSmilesParsestatic -lDepictorstatic -lSubstructMatchstatic -lGraphMolstatic -lDataStructsstatic -lRDGeometryLibstatic -lRDGeneralstatic
Nie działa. Wywala się na linkowaniu - trzeba dodać -lboostsystem Dopiero wtedy mamy coś co jest statycznie skompilowane z rdkitem. Kompilacja z nowszą wersją RDKita (zainstalowaną gdzieś na boku) z powyższymi opcjami nie działa:
tss_data(void const*, boost::shared_ptr, void*, bool)'
trzeba dodać jeszcze -lboostthread, dopiero taka komenda działa:
system -lChemReactionsstatic -lFileParsersstatic -lSmilesParsestatic -lDepictorstatic -lSubstructMatchstatic -lGraphMolstatic -lDataStructsstatic -lRDGeometryLibstatic -lRDGeneralstatic -lboostthread
czemu tak. Nie mam pojęcia. Ważne, że jest binarka ze statycznie zlinkowanym RDKitem.
W następnych odcinkach może będzie opis RDKit C++ API.