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