Poco c ++链接错误:未定义引用`Poco :: Data :: MySQL :: Connector :: registerConnector()

时间:2017-09-21 09:56:53

标签: c++ mysql ubuntu poco-libraries

我使用以下步骤成功构建并安装了POCO C ++:https://pocoproject.org/docs/00200-GettingStarted.html

我在构建期间运行了以下命令:

sudo apt-get install openssl libssl-dev
sudo apt-get install libiodbc2 libiodbc2-dev 
Installed Mysql client 
gunzip poco-X.Y.tar.gz
tar -xf poco-X.Y.tar
cd poco-X.Y
./configure
make -s -j4

构建成功。

安装:

./configure --prefix==/usr/local/poco2/
sudo make -s install

我的testy.cpp代码:

#include "iostream.h"
#include "Poco/Data/MySQL/MySQLException.h"
#include "Poco/Data/MySQL/MySQL.h"
#include "Poco/Data/MySQL/Connector.h"
#include "Poco/Data/SessionFactory.h"

using namespace Poco::Data;

int main() {
    MySQL::Connector::registerConnector();

    return 0;
}

我的错误是:

  

/tmp/ccvlAI5T.o:在函数`main'中:

     

testy.cpp :(。text + 0x5):对'Poco :: Data :: MySQL :: Connector :: registerConnector()'的未定义引用

     

collect2:错误:ld返回1退出状态

包含路径:

-I/home/saurabh/project2/poco-1.7.9-all/Data/MySQL/include/
-I/usr/local/poco2/include/
-I/usr/include 

关联路径:

-L/usr/local/poco2/lib/
-L/home/saurabh/project2/poco-1.7.9-all/lib/Linux/x86_64
-L/usr/lib -lmysqlclient

Ubuntu Linux上的编译和执行命令是:

g++ -o testy testy.cpp -I/home/saurabh/project2/poco-1.7.9-all/Data/MySQL    /include/  -I/usr/local/poco2/include/  -I/usr/include -L/usr/local/poco2    /lib  -L/home/saurabh/project2/poco-1.7.9-all/lib/Linux/x86_64 -L/usr/lib     -lmysqlclient

1 个答案:

答案 0 :(得分:0)

您必须链接 libPocoDataMysql 。 在我的设置中,此命令足以编译和链接而不会出现错误:

g++ -o testy testy.cpp -I/usr/include/c++/7/ -lPocoDataMySQL

如果需要,添加正确的包含和库路径。