当我尝试编译sqlite3.c和shell.c文件来创建库时,我写了
cl.exe /DSQLITE_OMIT_"one.of.the.option." sqlite3.c shell.c
它返回错误:
sqlite3.c
sqlite3.c(155868) : error C2129: static function 'void sqlite3"name of the option choosen"(Parse *,Expr *,Expr *,Expr *)' declared but not defined
sqlite3.c(13360) : see declaration of 'sqlite3"name of the choosen option"'
shell.c
Generating Code...
例如:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin>cl.exe -Os /DSQLITE_OMIT_ANALYZE sqlite3.c shell.c
sqlite3.c
sqlite3.c(155868) : error C2129: static function 'void sqlite3Attach(Parse *,Expr *,Expr *,Expr *)' declared but not defined
sqlite3.c(13360) : see declaration of 'sqlite3Attach'
shell.c
Generating Code...
所有OMIT选项都会发生这种情况。我该如何解决这个问题?
答案 0 :(得分:1)
您正在尝试编译库的合并版本(打包为单个源文件),如documentation中所述:
重要说明:SQLITE_OMIT_ *选项不适用于合并或预先打包的C代码文件。 SQLite_OMIT_ *编译时选项仅在从规范源文件构建SQLite时才能正常工作。
参见"建立合并"在how to compile部分中有关如何使用自定义选项构建合并的方法:
首先通过运行SQLite源代码树顶部的configure脚本,或者在源树顶部创建一个模板Makefile,来构造一个合适的Makefile。然后手动编辑此Makefile以包含所需的编译时选项。最后运行:
Error in system(paste(shQuote(pandoc_path), "--version"), intern = TRUE) : 'CreateProcess' failed to run 'D:\Datos de Usuarios\Usuario\AppData\Local\Pandoc\pandoc.exe --version' Calls: <Anonymous> ... get_pandoc_version -> with_pandoc_safe_environment -> force -> system Ejecución interrumpida
或在带有MSVC的Windows上:
make sqlite3.c