Windows x64上MySQL C连接器与GCC链接错误

Windows x64上MySQL C连接器与GCC链接错误,c,gcc,linker,mysql-connector-c,C,Gcc,Linker,Mysql Connector C,我已经用官方的MySQL windows安装程序安装了MySQL C连接器,但是在与GCC链接后,它仍然抛出未定义的引用错误 我尝试重新安装和安装不同的版本(即6.0到6.1.1)。我试着把所有的“\”改成“/”,我试着给了一个坏名字,然后又给了我一个“lib not found”错误,所以我确信我给出了正确的路径 GCC命令: gcc mysql_test.c -Wall -o "project_path\target\debug\mysql_test.exe" -I"C:\Program F

我已经用官方的MySQL windows安装程序安装了MySQL C连接器,但是在与GCC链接后,它仍然抛出未定义的引用错误

我尝试重新安装和安装不同的版本(即6.0到6.1.1)。我试着把所有的“\”改成“/”,我试着给了一个坏名字,然后又给了我一个“lib not found”错误,所以我确信我给出了正确的路径

GCC命令:

gcc mysql_test.c -Wall -o "project_path\target\debug\mysql_test.exe" -I"C:\Program Files\MySQL\MySQL Connector C 6.1\include" -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -lmysql
哪个扔

d:/mingw/bin/../lib/gcc/mingw32/8.2.0/../../../../mingw32/bin/ld.exe: C:\Users\UserPC\AppData\Local\Temp\cc479zw2.o:main.c:(.text+0x23): undefined reference to `mysql_init@4'
d:/mingw/bin/../lib/gcc/mingw32/8.2.0/../../../../mingw32/bin/ld.exe: C:\Users\UserPC\AppData\Local\Temp\cc479zw2.o:main.c:(.text+0x44): undefined reference to `mysql_options@12'
d:/mingw/bin/../lib/gcc/mingw32/8.2.0/../../../../mingw32/bin/ld.exe: C:\Users\UserPC\AppData\Local\Temp\cc479zw2.o:main.c:(.text+0x8d): undefined reference to `mysql_real_connect@32'
d:/mingw/bin/../lib/gcc/mingw32/8.2.0/../../../../mingw32/bin/ld.exe: C:\Users\UserPC\AppData\Local\Temp\cc479zw2.o:main.c:(.text+0xa2): undefined reference to `mysql_error@4'
collect2.exe: error: ld returned 1 exit status
make: *** [Makefile:12: all] Error 1
这让我相信是关联错误

这是我直接从文档中复制的代码:

#include <stdio.h>
#include <mysql.h>


int main() {
    MYSQL db;

    mysql_init(&db);
    mysql_options(&db,MYSQL_READ_DEFAULT_GROUP,"prj_name");

    if (!mysql_real_connect(&db,"i","correctly","set","these",0,NULL,0)) { 
        fprintf(stderr, "Failed to connect to database: Error: %s\n", mysql_error(&db)); 
    }
    return 0;
}
#包括
#包括
int main(){
MYSQL数据库;
mysql_init(&db);
mysql_选项(&db,mysql_读取_默认_组,“prj_名称”);
如果(!mysql_real_connect(&db,“i”,“correct”,“set”,“this”,0,NULL,0)){
fprintf(stderr,“无法连接到数据库:错误:%s\n”,mysql_错误(&db));
}
返回0;
}
我只使用(学习)C一个月左右,这是我第一次需要在图书馆链接

(预期结果将是没有抛出错误和编译成功。)


如何解决这些链接错误?

答案很荒谬,完全符合我的具体情况。事实证明,我不仅安装了一个Mingw32实例,而且在Cygwin之前指向了路径,因此它获得了完全的优先级。 我一摆脱它,因为其他一切都是Cygwin,链接就起作用了!我知道,这对任何一个满怀希望的网民来说都是一个彻底的失望,但我能做些什么呢? 您的问题的其他可能解决方案:

  • 在GCC中,最好将源文件放在第一位
  • 确保没有冲突的安装(我的案例)
  • 如果您是手动安装的,请确保您的系统确实适合二进制文件(例如,请检查是否为32位而不是64位)
  • 最后,使用linux,因为显然那些家伙很容易使用apt get和yum

非常感谢Shadow修复了我可怕的标签。

可能是我没有使用visual studio的副本,但感谢链接,我正在通读并检查它们。如果在那里找到答案,我会标记为已回答,再次感谢您的回答!另一个相关链接:。另请参见本文的副本。您是否偶然使用了Code::Blocks?啊,不,我是从“艰苦地学习C”开始学习的,作者给出了“避免使用IDE建立肌肉记忆”或类似建议。不管怎么说,我只是在使用记事本++和Cygwin。我想我会在2天内接受这个,因为网站不允许我选择自己的答案。伟大的