15 messages in com.mysql.lists.plusplusRe: multiple definitions of symbol li...| From | Sent On | Attachments |
|---|---|---|
| Graham Reitz | 06 Aug 2007 14:14 | |
| William F. Dowling | 06 Aug 2007 14:20 | |
| Graham Reitz | 06 Aug 2007 14:26 | |
| Graham Reitz | 06 Aug 2007 14:31 | |
| Graham Reitz | 06 Aug 2007 14:48 | |
| Cedrik Magis | 07 Aug 2007 01:55 | |
| Michael Nye | 07 Aug 2007 01:59 | |
| Jim Wallace | 07 Aug 2007 04:04 | |
| Ian Daysh | 07 Aug 2007 04:16 | |
| Cedrik Magis | 07 Aug 2007 04:32 | |
| Jim Wallace | 07 Aug 2007 06:38 | |
| Ian Daysh | 07 Aug 2007 10:38 | |
| Graham Reitz | 07 Aug 2007 20:45 | |
| Warren Young | 09 Aug 2007 05:01 | |
| Graham Reitz | 10 Aug 2007 17:42 |
| Subject: | Re: multiple definitions of symbol linker error using sql_create_#![]() |
|---|---|
| From: | William F. Dowling (will...@thomson.com) |
| Date: | 08/06/2007 02:20:42 PM |
| List: | com.mysql.lists.plusplus |
Put something like this in the project .h file (say, projdb.h):
#ifndef PROJ_DB_CPP #define MYSQLPP_SSQLS_NO_STATICS #endif
and something like this in the one corresponding .cpp file
#define PROJ_DB_CPP #include "projdb.h" #undef PROJ_DB_CPP
This caught me up too; search the mail archives for a fuller explanation.
Will
On Mon, 2007-08-06 at 16:14 -0500, Graham Reitz wrote:
I created a header file where I placed all of my sql_create_# macros.
I keep getting multiple definition linker errors.
/usr/bin/ld: multiple definitions of symbol agencies::names (there are more, but similar)
What am I missing?
The code looks as follows:
// start file my_tables.h #include <mysql++.h> #include <custom.h> #include <string>
#ifndef _TABLES_HPP_ #define _TABLES_HPP_
sql_create_3(agencies, 1, 3, unsigned int, agency_id, std::string, agency_name, std::string, agency_contact)
sql_create_3(billing, 1, 3, unsigned int, billing_id, std::string, billing_agency_name, std::string, billing_first_name) #endif // _TABLES_HPP_ // end file my_tables.h
// start file my_db.h #ifndef _MY_DB_H_ #define _MY_DB_H_
#include <string> #include <vector>
#include <boost/noncopyable.hpp> #include "my_tables.h"
class my_db : boost::noncopyable { public: explicit my_db(std::string tcp_ip_address, unsigned int port_number, std::string db_name, std::string db_username, std::string db_password); }; #endif // _MY_DB_H_ // end file my_db.h
// start file my_db.cpp #include <mysql++.h> #include "tac_db.h"
my_db::my_db(std::string tcp_ip_address, unsigned int port_number, std::string db_name, std::string db_username, std::string db_password) { // Connect to the database mysqlpp::Connection connection(db_name.c_str(), tcp_ip_address.c_str(), db_username.c_str(), db_password.c_str(), port_number, false); } // end file my_db.cpp
-- William F Dowling will...@thomson.com www.scientific.thomson.com




