包含SQLite时链接C代码时出错

laik7k3q  于 2022-11-15  发布在  SQLite
关注(0)|答案(1)|浏览(145)

在Visual Studio Code,Mac OS Version 10上,我正在尝试编译(调试C/C++文件)C代码以连接到SQLite3数据库。编译以错误结束:
LD:找不到-lsqlite clang的库:错误:链接器命令失败,退出代码为%1(使用-v查看调用)
在/usr/lib/下有一个SQLite3文件夹,其中包含SQLite3库。我把sqlite3.h直接放在同一个源代码文件sqlite3est1.c下。但是,编译失败并出现错误。我在终端上使用以下命令进行链接:

/usr/bin/clang -lsqlite3 -fcolor-diagnostics -fansi-escape-codes -g /Users/Training/sqlite3test1.c -o /Users/Training/sqlite3test1

该命令生成了一个正确运行的可执行文件,并且该可执行文件在终端窗口上提供了数据库记录(成功)。
如何在没有命令的情况下建立链接?

dojqjjoe

dojqjjoe1#

默认情况下,MacOS和Mac OS X中包含SQLite。所以我认为您是在问在VSCode中的哪里添加您的-lsqlite3链接参数,对吗?如果是,则有一个隐藏文件夹.vscode,里面是一个tasks.json

打开task.json

{
"tasks": [
    {
        "type": "cppbuild",
        "label": "C/C++: clang build active file",
        "command": "/usr/bin/clang",
        "args": [
            "-fcolor-diagnostics",
            "-fansi-escape-codes",
            "-g",
            "${file}",
            "-o",
            "${fileDirname}/${fileBasenameNoExtension}"
        ],
        "options": {
            "cwd": "${fileDirname}"
        },
        "problemMatcher": [
            "$gcc"
        ],
        "group": {
            "kind": "build",
            "isDefault": true
        },
        "detail": "Task generated by Debugger."
    },
    {
        "type": "cppbuild",
        "label": "C/C++: clang build active file",
        "command": "/usr/bin/clang",
        "args": [
            "-fcolor-diagnostics",
            "-fansi-escape-codes",
            "-g",
            "-l",
            "sqlite3",
            "${file}",
            "-o",
            "${fileDirname}/${fileBasenameNoExtension}"
        ],
        "options": {
            "cwd": "${fileDirname}"
        },
        "problemMatcher": [
            "$gcc"
        ],
        "group": "build",
        "detail": "compiler: /usr/bin/clang"
    }
],
"version": "2.0.0"
}

您找到我添加的sqlite3命令了吗?就这样。
现在,如果您构建并运行main.c文件,VSCode将成功编译和链接,您就可以进行调试了。

相关问题