【问题标题】:CodeBlocks linker issue with MySQL on Windows 8.1Windows 8.1 上 MySQL 的 CodeBlocks 链接器问题
【发布时间】:2015-12-03 07:48:25
【问题描述】:

我正在尝试在 Windows 8.1 上的 CodeBlocks 13.12 IDE 中使用 C 连接到 MySQL 服务器。以下是我的构建选项。

我的代码如下。

#ifdef WIN32
  #include <windows.h>
  #include <winsock.h>
  #pragma warning (disable: 4514 4786)
  #pragma warning( push, 3 )
#endif

#include <stdio.h>
#include <mysql.h>
#ifndef WIN32
  #include <unistd.h>
#endif
int main(int argc, char **argv)
{
  MYSQL mysql;

  if(mysql_init(&mysql)==NULL){
        printf("\nFailed to initate MySQL connection");
        exit(1);
    }
  /*now you can call any MySQL API function you like*/
if(!mysql_real_connect(&mysql,"localhost","user","password","molecules",0,NULL,0)){
     printf( "Failed to connect to MySQL: Error: %s\n",
mysql_error(&mysql));
     exit(1);
   }
printf("Logged on to database sucessfully");
mysql_close(&mysql);
  }

我收到以下错误。

谁能帮帮我?

【问题讨论】:

    标签: mysql c windows codeblocks linker-errors


    【解决方案1】:

    出于某种原因,Codeblocks 不喜欢 MySQL。我假设你有 MySQL C 连接器?如果没有,你可以得到它here

    从 MySQL C 连接器目录中,复制名为 Include 的文件夹的全部内容,然后进入 MinGW 目录并将内容粘贴到 MinGW 的 Include 文件夹中。

    下载this Zip 文件夹,其中包含libmysql.a 和libmysql.dll。解压并复制 libmysql.a 到 MingGW 的 lib 文件夹中。将 libmysql.dll 复制到 Windows System32 和 SysWOW64 文件夹中。

    最后在代码块中,在编译器设置/链接器设置/其他链接器选项中 - 键入“-lmysql”,不带引号。

    未在 Windows 8.1 上测试,适用于 Windows 7。

    你有很多不必要的代码来测试连接。

    #include <stdio.h>
    #include <winsock2.h>
    #include <mysql.h>
    
    int main(int argc, char **argv)
    {
      MYSQL *conn = mysql_init(NULL);
    
      if (!(mysql_real_connect(conn, "localhost", "username", "password", "database", 0, NULL, 0)))
      {
          printf(stderr, "%s\n", mysql_error(conn));
          mysql_close(conn);
          exit(1);
      }
      printf ("Connection Succesful");
      mysql_close(conn);
      return 0;
    }
    

    【讨论】:

    • 我有这个:c:\mingw\bin\..\lib\gcc\mingw32\6.3.0\..\..\..\crt2.o||未定义对_CRT_fenv'| c:\mingw\bin\..\lib\gcc\mingw32\6.3.0\..\..\..\crt2.o|| undefined reference to _setargv'的引用||错误:ld 返回 1 个退出状态| ||=== 构建失败:3 个错误,1 个警告(0 分钟,1 秒)===|
    猜你喜欢
    • 2014-04-04
    • 2018-09-02
    • 2014-03-05
    • 1970-01-01
    • 2018-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多