使用 MINGW32 在 Debian 上使用 C++ 和 MySQL 进行编译
Compile with C++ & MySQL on Debian using MINGW32
我无法编译这个文件,我不得不移动文件来包含它们。
COMPILE.SH
#!/bin/bash
i586-mingw32msvc-g++ -o widget.exe main.cpp -I /usr/include/boost/ -L /usr/lib/x86_64-linux-gnu/libmysqlclient.so
误差/tmp/cci9fwk8.o:main.cpp:(.text+0x526): undefined reference to `__imp___ZN3sql5mysql19get_driver_instanceEv'
collect2: ld returned 1 exit status
我找到了超过10个指南,我完全按照他们,安装所有的依赖,添加mysqlclient等,没有工作。
MAIN.CPP(只是一部分,其余代码不需要)
#include <cstdlib>
#include <iostream>
#include <string>
#include <sstream>
#include <cstdio>
#include <windows.h>
#include <fstream>
#include <stdio.h>
#include <direct.h>
#include "/usr/include/cppconn/mysql_connection.h"
#include "/usr/include/cppconn/mysql_driver.h"
#include </usr/include/cppconn/cppconn/driver.h>
#include </usr/include/cppconn/cppconn/exception.h>
#include </usr/include/cppconn/cppconn/resultset.h>
#include </usr/include/cppconn/cppconn/statement.h>
using namespace std;
sql::Connection *con;
sql::Statement *stmt;
sql::ResultSet *res;
sql::mysql::MySQL_Driver *driver;
driver = sql::mysql::get_driver_instance();
con = driver->connect("", "", "");
con->setSchema("");
ldd/usr/lib/x86_64-linux-gnu/libmysqlclient.so
linux-vdso.so.1 => (0x00007fff21eba000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fb027f52000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fb027d3b000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fb027b36000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fb02792e000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fb027627000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fb0273a4000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fb02718e000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb026e03000)
/lib64/ld-linux-x86-64.so.2 (0x00007fb0286c0000)
通常,错误如下:
undefined reference to `__imp___ZN3sql5mysql19get_driver_instanceEv'
会发生:
- 没有实现的方法
- 你有两个或多个版本的库
- 头文件在x版本,源代码在y版本。
告诉你怎么做如果你没有一些linux技能会有点困难…也许mysql使用不同版本的libboost,我不确定。
试题:
ldd /usr/lib/x86_64-linux-gnu/libmysqlclient.so
libmysqlclient.so
如果有很多依赖项,你可以:
ldd /usr/lib/x86_64-linux-gnu/libmysqlclient.so | grep boost
并检查boost版本是否相同:
cat /usr/include/boost/version.hpp | grep "BOOST_LIB_VERSION"
<标题>编辑:顺便说一下,我建议你用:
编译。-I /usr/include -L /usr/lib -lcppconn
可能不是必需的,但这是肯定的。然后以这样的方式包含在main中:
#include <cppconn/mysql_connection.h>
#include <cppconn/mysql_driver.h>
#include <cppconn/cppconn/driver.h>
#include <cppconn/cppconn/exception.h>
#include <cppconn/cppconn/resultset.h>
#include <cppconn/cppconn/statement.h>
全部带<>,不带"。
标题>相关文章:
- 二叉排序树无法编译
- 致命错误mysql.h:编译期间没有这样的文件或目录
- Mysql++ 简单脚本编译失败
- 在Linux环境下用MYSQL.h编译C++程序
- #include < mysql.h> & #include <my_global.h> 导致编译错误
- 从C++连接MySQL时程序错误中"error: stray ‘302’"编译错误
- 在windows 7 64位中编译Qt 4.8.0的MySQL驱动程序
- 使用Visual Studio 2015 Win64编译MySQL连接器
- 编译MySQL连接器/C++的examples/standalone_example.cpp失败
- Qt编译问题w/ MySQL - Mac OS X
- 使用 MINGW32 在 Debian 上使用 C++ 和 MySQL 进行编译
- 如何定位MySQL头文件来编译qt
- 编译并运行文件夹中提供的MySQL++和C++示例
- 为什么简单的mysql++代码编译独立,而不是在项目
- "cannot create .moc/main.moc "有一个错误,当我编译Qt5.7的mysql驱动程序时
- 编译mysql连接器c++与mingw,编译错误
- Qt-如何获取|编译Mysql驱动程序
- 无法编译mysql源代码
- 使用MySQL支持编译QuickFIX C++
- 在Cygwin中使用MySQL编译c++应用程序