【问题标题】:cl.exe error D8003 (missing source filename) when building a Sqlite module构建 Sqlite 模块时出现 cl.exe 错误 D8003(缺少源文件名)
【发布时间】:2018-09-23 13:52:18
【问题描述】:

我下载并解压缩了https://sqlite.org/2016/sqlite-src-3110100.zip。然后,当尝试将扩展名spellfix(在 Linux 上为 works)构建为 DLL 时:

call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat"
cd sqlite-src-3110100
cl /I"src\" ext\misc\spellfix.c /link

我明白了:

cl : Command line error D8003 : missing source filename

为什么?

【问题讨论】:

  • 供将来参考:here 是详细的 HOWTO + 适用于 Windows 和 Linux 的即用型示例。

标签: windows sqlite visual-c++ cl


【解决方案1】:

你应该试试:

cl /I <path to sqlite amalgation> <path-to-spellfix.c> /link /DLL /OUT:spellfix.dll

【讨论】:

  • 谢谢@JacquesGaudin。我尝试了cl /I src ext/misc/spellfix.c /link /DLL /OUT:spellfix.dll,现在sqlite3ext.h 已成功找到,但现在Cannot open include file: 'sqlite3.h': No such file or directory。我仔细检查了存档sqlite.org/2016/sqlite-src-3110100.zip,但里面没有sqlite3.h。为什么?
  • 我也找到了hereThe spellfix1 virtual table is not included in the SQLite amalgamation
  • 您需要的所有包含文件都在这里:sqlite.org/2018/sqlite-amalgamation-3230100.zip
  • Tghe src 文件夹不包含所需的包含文件。
  • 如果您没有任何来源,因为您正在链接已构建的 obj,该怎么办?
【解决方案2】:

我在使用 DBeaver 和 SQLite 的 jdbc 驱动程序时遇到了类似的问题。并希望它可以帮助某人节省一些时间。

问题

  1. 我无法加载扩展拼写修复 我在执行时收到错误“no such module spellfix1

    select * from table1 where col1 like 'asd%'

  2. SQLite 的文档不清楚如何加载扩展,也不清楚如何构建它(这个帖子帮助了我,谢谢大家,但由于我很长时间没有编码,所以仍然不明显)

解决方案

  1. 我已经从下面的 url 下载了 sqlite 的源代码,然后按照上面帖子中的步骤完成了,但是由于我有 x64 DBeaver,所以我收到了错误

SQL 错误或缺少数据库(%1 不是有效的 Win32 应用程序。) 很明显,我需要 x64 构建,所以我做了以下步骤:

a) 在 cmd 提示符下执行:

call "E:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" amd64

amd64 参数是为 x64 构建设置构建环境所必需的

b) 之后我使用了 cl 命令:

cl /I "<path to sqlite amalgation folder>" "ext\misc\spellfix.c" /link /DLL /OUT:spellfix64.dll

cmd 提示符位于我从 URL 下载最新 sqlite 源的位置。 我是如何到达那个链接的也有点冒险:)

  1. 然后将我的 dll 放到位置并在 DBeaver 中执行 load_extension 命令

    select load_extension('E:/Users/Name/Downloads/SQLite/ext/spellfix64');

我放置构建版本的路径。为了能够构建 x64 版本,我需要使用上述 cmets 构建。

呃,还有一件事,您需要在连接属性上在 DBeaver 中启用加载扩展:帖子是here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    • 2017-09-09
    • 2017-03-23
    • 2022-01-01
    • 2021-06-18
    • 1970-01-01
    • 2021-10-02
    相关资源
    最近更新 更多