Please check 2 things: 1. ls $ROOTSYS/lib/*Image.* should delivery libAfterImage.a libASImage.so 2. grep Image $ROOTSYS/etc/system.rootrc Plugin.TPaletteEditor: * TASPaletteEditor ASImage "TASPaletteEditor(TAttImage*,UInt_t,UInt_t)" Plugin.TImage: * TASImage ASImage "TASImage()" Hope this helps. ---- Best regards Valeri > -----Original Message----- > From: owner-roottalk@pcroot.cern.ch [mailto:owner-roottalk@pcroot.cern.ch] On > Behalf Of Bernd Reinhold > Sent: Tuesday, April 13, 2004 5:23 PM > To: roottalk@pcroot.cern.ch > Subject: [ROOT] TImage, ASImage does not exist in... (the 2nd) > > Hi! > > [I sent it accidentally a bit too early, so please ignore the first email. (And > perhaps to the wrong address)] > > My program (see below for the source!) compiles without error. the executable > creates the following output: > > (...) > before1 > Error in <TUnixSystem::DynamicPathName>: ASImage[.so | .sl | .dl | .a] does not > exist in .:/usr/local//lib/root > after1 > > *** Break *** segmentation violation > Generating stack trace... > 0x42029188 in <unknown> from analysis_root_mysql > 0x42017589 in __libc_start_main + 0x95 from analysis_root_mysql > 0x080546b1 in __eh_alloc + 0x49 from analysis_root_mysql > Abort > > In the code this is: > cout << "before1" << endl; > TImage *img = TImage::Create(); > cout << "after1" << endl; > gSystem->ProcessEvents(); > img->FromPad(c1); > > Is there a problem with TImage? ASImage IS not there, but why is it not? > Is this a problem of my installation of root? > I have 3.10.02. (Compiled from source with gcc 2.96) > configure linux --prefix=/usr/local/ --disable-shared --enable-alien > --enable-table --enable-ldap; gmake; gmake install; > I have CERN RedHat 7.3.4 > > (The program is trying to integrate ROOT and mysql++ (to explain the headers)) > > 2 other (minor) issues: > 1. There is a segmentation violation if I uncomment gROOT... and gDebug... > int main(...) > // gROOT->Reset(); > // gDebug=7; > 2. the compiler complains about the 'kJpeg'. Can you tell me the correct syntax? > img->WriteImage(p.str(), kJpeg); > > Thank you for your help. It is highly appreciated. > > Bernd. > > --------appendix-------- > 1. the program > 2. the makefile (for this program) > > #include <iostream> > #include <sqlplus.hh> > //root-includes > #include <TSystem.h> > #include <TROOT.h> > #include <TPad.h> > #include <TH1.h> > #include <TImage.h> > #include <TCanvas.h> > //had them included in the other root-script, executed in CINT > #include <sstream> > #include "string" > #include "Riostream.h" > #include "vector" > > > int main (int argc, char *argv[]) { > // gROOT->Reset(); > // gDebug=7; > string SQLstring; > Connection connection(use_exceptions); > Int_t nlines=0; > try { // the entire main block is one big try block; > connection.connect("localdb", "hmmm", "lala", "oufff"); > if (argc == 1){ > SQLstring="SELECT pullforce FROM pt_main as M, pt_rawdata as R > WHERE M.ID=R.ID and M.status=R.status and M.batch like '%HSA%' and M.status=1"; > } else if (argc == 2){ > SQLstring= argv[1]; > } else { > //the SQL-query as argument > cerr << "The program expects either 2 or 1 argument(s). But it > found " << argc << " argument(s)." << endl; > return -1; > } > // create a new object and connect based on any (if any) arguments > // passed to main(); > > Query query = connection.query(); // create a new query object > > // ignore any errors here > // I hope to make this simpler soon, comment by Sinisa Milosevic > query << SQLstring.c_str(); > Result res = query.store(); > if(res.empty()) throw BadQuery("the query was empty"); > > cout << "query: " << query.preview() << endl; > cout << "records found: " << res.size() << endl << endl; > > > > //now populate the histogram; here is where root-objects are used for the first > time... > //assume only one column (row[0]) > > TH1D *h1 = new TH1D("h1", SQLstring.c_str(), 100,0,20); > TCanvas *c1 = new TCanvas("c1", "thecanvas", 600, 400); > Row row; > Result::iterator i; > for(i=res.begin(); i!=res.end(); i++){ > row=*i; > // cout << row[0] << endl; > h1->Fill((double)row[0]); > nlines++; > } > > h1->Draw(); > c1->Update(); > ostringstream p; > p << "/home/reinhold_pcepcmt35/analysis/results/" << > res.names(0).c_str() <<".jpg" << ends; > > > cout << "before1" << endl; > TImage *img = TImage::Create(); > cout << "after1" << endl; > gSystem->ProcessEvents(); > img->FromPad(c1); > cout << "after2" << endl; > // img->WriteImage(p.str(), kJpeg); > cout << "the jpg-image was stored in the following absolute path: "<< > p.str() << endl; > > delete h1; > delete c1; > delete img; > > return 0; > > } catch (BadQuery &er) { // handle any connection or > // query errors that may come up > #ifdef USE_STANDARD_EXCEPTION > cerr << "Error: " << er.what() << endl; > #else > cerr << "Error: " << er.error << endl; > #endif > return -1; > } catch (BadConversion &er) { // handle bad conversions > cerr << "lines so far: " << nlines << endl; > #ifdef USE_STANDARD_EXCEPTION > cerr << "Error: " << er.what() << "\"." << endl > << "retrieved data size: " << er.retrieved > << " actual data size: " << er.actual_size << endl; > #else > cerr << "Error: Tried to convert \"" << er.data << "\" to a \"" > << er.type_name << "\"." << endl; > #endif > return -1; > #ifdef USE_STANDARD_EXCEPTION > } catch (exception &er) { > cerr << "Error: " << er.what() << endl; > return -1; > #endif > } > > } > > ---makefile--- > > analysis_root_mysql: analysis_root_mysql.o > g++ -oanalysis_root_mysql analysis_root_mysql.o \ > -L/usr/local/mysql//lib/mysql \ > $(shell root-config --libs) \ > -lmysqlclient -lz \ > -L/usr/src/mysql++-1.7.9_patched/sqlplusint/ \ > -lsqlplus > > analysis_root_mysql.o: analysis_root_mysql.cpp > g++ -c analysis_root_mysql.cpp -I/usr/local/mysql//include/mysql \ > -I/usr/src/mysql++-1.7.9_patched/sqlplusint \ > -I/usr/local/include/root
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:07 MET