xiaoyi510 / rustdesk-api-server

RustDesk Api Server
Apache License 2.0
186 stars 65 forks source link

sqlite3 数据库注册失败 #29

Closed Cp0204 closed 9 months ago

Cp0204 commented 9 months ago

LOG:

加载配置项
加载配置项 完成
2023/12/11 11:35:20.385 [I]  数据库注册类型 sqlite3
[ORM]2023/12/11 11:35:20 register db Ping `default`, Binary was compiled with 'CGO_ENABLED=0', go-sqlite3 requires cgo to work. This is a stub
2023/12/11 11:35:20 初始化模型
2023/12/11 11:35:20.386 [E]  sqlite3 数据库注册失败 register db Ping `default`, Binary was compiled with 'CGO_ENABLED=0', go-sqlite3 requires cgo to work. This is a stub

ChatGPT的回复:

你遇到的错误表明你的Go程序中使用了一个名为"go-sqlite3"的包,并且它要求在编译时启用CGO(C语言调用Go语言)才能正常工作。然而,你的程序似乎是在禁用CGO的情况下编译的。

要解决这个问题,你可以考虑以下几个步骤:

  1. 启用CGO编译: 为了让"go-sqlite3"正常工作,你需要在编译时启用CGO。你可以通过在编译命令中设置CGO_ENABLED=1来实现这一点。例如:

    CGO_ENABLED=1 go build your_program.go
  2. 安装依赖: 请确保你的系统上已经安装了SQLite的C语言库,因为"go-sqlite3"包需要连接到这个库。具体的安装方法取决于你的操作系统。

  3. 使用正确的编译标志: 如果你正在使用一些构建工具或者构建系统,确保它们也正确地传递了CGO编译标志。如果你使用的是Go Modules,检查你的go.mod文件是否包含正确的CGO编译信息。

请注意,有时候禁用CGO可能是有原因的,例如在某些嵌入式系统或者容器化环境中。在这种情况下,你可能需要考虑使用不需要CGO的SQLite库,或者调整你的应用程序以适应CGO的禁用。

xiaoyi510 commented 9 months ago

sqlite 需要cgo 自己编译下 可以直接使用mysql即可