Mailing List
Home
Forum Home
MySQL General - General MySQL discussion
MySQL++ - Programming with the C++ API to MySQL
MaxDB - Everything about MaxDB, formerly known as SAP DB
ODBC - ODBC with the MySQL Connector/ODBC driver
MySQL on Win32 - Runing MySQL on Windows 9x/Me/NT/2000/XP
Java Help - Mostly related to the MySQL Connector/J driver
Perl - Perl support for MySQL with DBI and DBD::mysql
GUI - MySQL GUI Tools
Announcement
Subjects
mysql openssl Question
ERROR 1045: Access denied for user: 'root@localhost ' (Using
password: NO)
Update one field with more fields from another table
Getting Identity after INSERT
ERROR 2002: Can 't connect to local MySQL server through socket
mysql test 4 1 fails with the gis test
MySQL Cluster Software
Downgrade Mysql from 4 to 3 23
Mysql 4 0 Oracle Stored Procedure Trigger Conversion
Can 't access mysql after kernel upgrade
Executing MySQL Commands From Within C Program
Comparing and writing out BLOBS
Preventing Duplicate Entries
FULLTEXT query format question
Strange behavior, Table Level Permission
Does the binary log enabling affect the MySQL performances?
mysql:it 's a db not a dbms how it 's possible?!
mysql have same function mthod as Oracle decode()
 
multiple definitions of symbol linker error using sql_create_#

multiple definitions of symbol linker error using sql_create_#

2007-08-06       - By Graham Reitz

 Back
Reply:     1     2     3     4     5  

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