VSCode c ++ mysql .h неопределенная ссылка на 'mysql_init@4' - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь заставить C ++ работать с mysql .h в VSCode. Я поместил все файлы (.h, lib mysql .lib, ...) в ту же папку, что и мой файл 'main. cpp', и попытался запустить программу с

g++ main.cpp -I"D:\Projects\New project"

И я продолжаю получать следующую ошибку:

c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\user\AppData\Local
\Temp\ccYwlVSu.o:main.cpp:(.text+0x43): undefined reference to `mysql_init@4'
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: C:\Users\user\AppData\Local          
\Temp\ccYwlVSu.o:main.cpp:(.text+0x8c): undefined reference to `mysql_real_connect@32'
collect2.exe: error: ld returned 1 exit status

Я прочитал, что мне нужно правильно связать все мои библиотеки, что, я думаю, я делаю с помощью команды -I. Чего мне не хватает?

main. cpp

#include <iostream>
#include <windows.h>
#include <mysql.h>

int main(){
    MYSQL* conn;
    conn = mysql_init(0);
    conn = mysql_real_connect(conn, "localhost", "root", "", "airlines_db", 0, NULL, 0);

    if(conn){
        std::cout << "Connected" << std::endl;
    } else {
        std::cout << "Not connected" << std::endl;
    }
}

tasks. json

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "echo",
            "command": "g++",
            "args": [
                "-g", "main.cpp"
            ],
            "group": {
                "kind" : "build",
                "isDefault": true
            }
        }
    ]
}

c_cpp_properties. json

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "C:\\MinGW\\bin\\gcc.exe",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "clang-x86",
            "browse": {
                "path": [
                    "C:\\MinGW\\lib\\gcc\\mingw32\\9.2.0\\include\\c++"
                ]
            }
        }
    ],
    "version": 4
}

1 Ответ

0 голосов
/ 27 марта 2020

Я понял это - в моей команде пропал -l mysql. Я добавил это, и теперь все хорошо!

...