On Fri, 20 Aug 2004 15:58:29 +0200
 Steven Beeckman <[EMAIL PROTECTED]> wrote:

I've checked the latest CVS snapshot from SimGear.org, and even there I find 2 readXML-methods in easyxml.hxx, so that won't be the problem. I've commented out the readXML-method with 3 arguments in easyxml.hxx, which seemed to solve the overloading problem.

So in main.cpp the code looks like this:

ifstream inputfile(argv[2]);
if (!inputfile) {
 cerr << "Could not open autoplot file " << argv[2] << endl << endl;
plotXMLVisitor myVisitor;
readXML (inputfile, myVisitor);|

Unfortunately, compiling gives this:

| [EMAIL PROTECTED]:~/JSBSim/JSBSim/utilities$ g++ *.cpp -I/usr/local/include/ -L/usr/local/dislin/ -ldislnc -o simplot
main.cpp: In function `int main(int, char**)':
main.cpp:69: could not convert `inputfile' to `const std::string&'
/usr/local/include/simgear/xml/easyxml.hxx:377: in passing argument 1of `void readXML(const std::string&, XMLVisitor&)'
Calling readXML with argv[2] instead of inputfile gives (again) an undefined reference about the readXML-method (still commented out the one with 3 arguments). Any ideas how to solve this problem?

Yes, calling readXML() with a char* would not be good - wrong type. However, I am using this form in two applications, and compiling under CygWin, with no problem (this is from a different application that simplot):

  ifstream inputfile(argv[1]);
  if (!inputfile) {
    cerr << "Could not open XML file " << argv[1] << endl << endl;
  FGXMLParse myXMLFile;
  readXML (inputfile, myXMLFile);

It seems as if your compiler is choking on the first argument of readXML() not being a const reference to a string. I'm not sure how to solve this. I'll cross-post to flightgear-devel - someone there may have a clue.


Flightgear-devel mailing list

Reply via email to