Símbolo não resolvido: sql :: mysql :: get_driver_instance (void)

Tenho um programa que usa o conector MySQL para conversar com um banco de dados MySQL. O aplicativo funciona bem usando o Visual Studio 2008. Estou tentando criar o aplicativo com o Visual Studio 2010 e foi aí que os problemas começara

O MySQL Connector 1.05 não é suportado no VS 2010 e eles não têm uma versão binária do 1.1.0 que funciona com o VS 2010. As informações do MySQL dizem para baixar a fonte do Connector C ++ 1.10 e compilar com o VS 2010. Depois muito trabalho, eu construo. Os exemplos são executados.

No entanto, quando crio meu aplicativo com o recém-criado Connector C ++ 1.1.0, recebo a seguinte mensagem de erro:

error LNK2019: unresolved external symbol "class sql::mysql::MySQL_Driver * __cdecl sql::mysql::get_driver_instance(void)" (?get_driver_instance@mysql@sql@@YAPAVMySQL_Driver@12@XZ) referenced in function "private: void __thiscall Database_NS::Manager::initialize_db_driver(void)const " (?initialize_db_driver@Manager@Database_NS@@ABEXXZ)

Isso é causado pela seguinte linha de origem:

sql::Driver * p_driver = sql::mysql::get_driver_instance();

Os exemplos do MySQL Connector C ++ 1.1.0 usam a linha acima e não recebem erros. Eu tentei vincular com mysqlconn-static.lib, mysqlconn.lib, mysqlclient.lib, libmysql.lib e ainda assim a mensagem de erro persiste.

Um ponto interessante é que, de acordo com o VS 2010, a linha de origem acima usa esta declaração:

CPPCONN_PUBLIC_FUNC MySQL_Driver * get_driver_instance();

Observe os diferentes valores de retorn

Quando uso o Visual Studio 2010 e o exemplo de projeto de conector, o VS 2010 não consegue encontrar a declaração ou a declaração de função deget_driver_instance() usado porconnect.cpp. A declaração no meu programa é a declaração exata usada porconnect.cpp, desde que copiei sem alteraçõe

Outras pessoas resolveram esse problema usando outro driver. No entanto, não quero alterar meu código, que funciona com o VS2008, a menos que seja necessári

Outra resposta a esta questão diz para definir "mysqlcppconn_EXPORTS", mas isso também não funcionou, também relatado no comentário à respost

Aqui estão minhas perguntas:
1. Alguém tem o MySQL Connector 1.1.0 para trabalhar com o Visual Studio 2010?
Se assim for, responda com um exemplo passo a passoe indicar se a DLL ou a biblioteca estática.
2. Como o compilador VS seleciona oget_driver_instance() função que retornaMySQL_Driver * em vez da função que retorna oDriver *?
Não estou recebendo nenhum aviso ou erro sobre funções ambíguas (já que a sobrecarga deve diferir mais do que apenas o tipo de retorno

Estou usando o Visual Studio 2010 no Windows 7x64 bits, MySQL Connector C ++ 1.1.

Veja também
get_driver_instance () falha com o Qt
eferência não definida para 'get_driver_instance'
MySQL C ++ Connector: referência indefinida a `get_driver_instance '
mysql-connector-c ++ - 'get_driver_instance' não é membro de 'sql :: mysql'
Como corrigir o símbolo externo não resolvido devido ao MySql Connector C +

questionAnswers(2)

yourAnswerToTheQuestion