help-cgicc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[help-cgicc] Re: help-cgicc digest, Vol 1 #127 - 1 msg


From: Charles Tassell
Subject: [help-cgicc] Re: help-cgicc digest, Vol 1 #127 - 1 msg
Date: Mon, 21 Oct 2002 15:49:02 -0300

The problem is your compile command.  You have to include all the C++ files, as the try.cpp is only including the header files, not the actual C++ code.  Try something like:

g++ -o try try.cpp textdb.cpp textdbex.cpp

or, the more common method:

g++ -c -o textdb.o textdb.cpp
g++ -c -o textdbex.o textdbex.cpp
g++ -o try try.cpp textdb.o textdbex.o

The -c means that this is an object file, so it doesn't require a main() routine and it shouldn't be sent to the linker. -o just specifies the name of the output file.



At 07:41 AM 10/21/2002, address@hidden wrote:
Send help-cgicc mailing list submissions to
        address@hidden

To subscribe or unsubscribe via the World Wide Web, visit
        http://mail.gnu.org/mailman/listinfo/help-cgicc
or, via email, send a message with subject or body 'help' to
        address@hidden

You can reach the person managing the list at
        address@hidden

When replying, please edit your Subject line so it is more specific
than "Re: Contents of help-cgicc digest..."


Today's Topics:

   1. Annoying problem... (Spam)

--__--__--

Message: 1
Reply-To: <address@hidden>
From: "Spam" <address@hidden>
To: <address@hidden>
Date: Sat, 19 Oct 2002 15:19:50 -0400
Subject: [help-cgicc] Annoying problem...

Ok, here is my situation:  I am in the process of creating a Text
Database that will use XML files to imitate a database.  It will be used
in CGI applications.  I created a very simple structure on my own
computer using Microsoft Visual Studio 6.  Then, all I want to do is
upload those files, and use g++ on the server to compile the code into
the actual CGI file.  The whole thing works perfectly fine on my
computer, but when I try to use g++, I get the following errors:

bash-2.05$ g++ try.cpp
/tmp/ccACQPoE.o: In function `main':
/tmp/ccACQPoE.o(.text+0x2e): undefined reference to
`textdb::TextDB::TextDB(void)'
/tmp/ccACQPoE.o(.text+0x57): undefined reference to
`textdb::TextDB::connect(basic_string<char, string_char_traits<char>,
__default_alloc_template<true, 0> >)'
/tmp/ccACQPoE.o(.text+0x149): undefined reference to
`textdb::TextDBException::TextDBException(textdb::TextDBException const
&)'
collect2: ld returned 1 exit status

Here are all of the files.  There are 5 in all, and each file is noted:

PLEASE, any help will be very appreciated, I spent all yesterday
searching the internet for a possible solution to this, and I couldn't
find anything.  Is it a problem with the linker or something?

here is my g++ version:

bash-2.05$ g++ -v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.96/specs
gcc version 2.96 20000731 (Red Hat Linux 7.2 2.96-108.7.2)

***********
* try.cpp *
***********

#include <string>
#include <cstdio>
#include "textdb.h"
#include "textdbex.h"

using namespace std;

int main() {
        printf("Content-type: text/html\n\n");
        
printf("<html>\n<head>\n<title>TextDB</title>\n</head>\n<body>\n");
        try {
                textdb::TextDB db;
                db.connect("");
        } catch(textdb::TextDBException &ex) {
                printf("TextDBConnectionException: %s",ex.what());
                throw ex;
        }
        printf("\nWorks");
        printf("\n</body>\n</html>\n");
        return 0;
}

************
* textdb.h *
************

#ifndef _TEXTDB_H
#define _TEXTDB_H

#include <string>
#include "textdbex.h"

using namespace std;

namespace textdb {
        class TextDB {
                public:
                        TextDB();

                        void connect(string directory);
                protected:
                        string db_location;
        };
}

#endif

**************
* textdb.cpp *
**************

#include <string>
#include "textdbex.h"
#include "textdb.h"

using namespace std;

namespace textdb {
        TextDB::TextDB() {
                db_location = "";
        }

        void TextDB::connect(string directory) throw(TextDBException) {
                if(directory == "") {
                        throw TextDBConnectionException("Database
directory not provided.");
                }
        }
}

**************
* textdbex.h *
**************

#ifndef _TEXTDBEX_H
#define _TEXTDBEX_H

#include <string>

using namespace std;

namespace textdb {
        class TextDBException {
                public:
                        TextDBException();
                        TextDBException(const string &);
                        TextDBException(const TextDBException &);
                        virtual const char* what() const {return
msg.c_str();};

                protected:
                        string msg;
        };

        class TextDBConnectionException : public TextDBException {
                public:
                        TextDBConnectionException();
                        TextDBConnectionException(const string &);
                        TextDBConnectionException(const
TextDBConnectionException &);
        };
}

#endif

****************
* textdbex.cpp *
****************

#include <string>
#include "textdbex.h"

using namespace std;

namespace textdb {
        /*
                TextDBException Class
        */
        TextDBException::TextDBException() {
                msg = "";
        }

        TextDBException::TextDBException(const string &_msg) {
                msg = _msg;
        }

        TextDBException::TextDBException(const TextDBException &tdbe) {
                msg = tdbe.msg;
        }

        /*
                TextDBConnectionException Class
        */
        TextDBConnectionException::TextDBConnectionException()
                : TextDBException()
        {}

        TextDBConnectionException::TextDBConnectionException(const
string &_msg)
                : TextDBException(_msg)
        {}

        TextDBConnectionException::TextDBConnectionException(const
TextDBConnectionException &_tdbce)
                : TextDBException(_tdbce)
        {}
}






--__--__--

_______________________________________________
help-cgicc mailing list
address@hidden
http://mail.gnu.org/mailman/listinfo/help-cgicc


End of help-cgicc Digest

reply via email to

[Prev in Thread] Current Thread [Next in Thread]