- 我正在使用使用 ming gcc 的 dev c++ IDE(我不确定)
- 我想在我的 win32 c 应用程序中使用 sqlite3
- 我下载了 sqlite3.dll 和 sqlite3.dev 并使用 dlltool 创建了一个类似 libsqlite3.a 的 .a 文件并粘贴到 dev cpp 的 lib 文件夹中,并在项目选项 -> 参数中添加了这个路径
- 我将头文件 sqlite3.h 复制到包含文件夹中(我从另一个网站获得 - http://www.opensource.apple.com/source/SQLite/SQLite-74/derived_source/sqlite3.h)
- 我执行了程序并收到消息“程序无法启动,因为您的计算机中缺少 sqlite3.dll”
- 所以我将 sqlite3.dll 复制到我的工作目录中,然后它就可以工作了
但
如何在编译时使 sqlite.* 静态?
我的意思是我认为通过包含 libsqlite3.a,最终的 exe 将不依赖于任何外部 dll。
因此,我想知道如何以不需要 dll 的方式进行编译,并通过这样做使我的 windows 程序独立。
我有创建一个 .lib 文件而不是 .a 文件吗?
回答和评论后编辑:此外,devpak工作正常......但我想知道如何将文件包含到项目或创建.a文件所以我正在尝试这种方式,因为如果某些组件不提供devpak那么这将是我们需要编译的方式..不是吗?
编辑以显示我在 CL 的回答和两条评论之后所做的事情
这就是我将 sqlite.c 添加到项目列表的方式
这是编译日志
编译器:默认编译器
构建 Makefile:“C:\Users\jayapalc\Documents\test-sqlite\Makefile.win”
执行制作...
make.exe -f "C:\Users\jayapalc\Documents\test-sqlite\Makefile.win" 全部
g++.exe -c sqlite3.c -o sqlite3.o -I"lib/gcc/mingw32/3.4.2/include" -I"include/c++/3.4.2/backward" -I"include/c++/3.4. 2/mingw32" -I"include/c++/3.4.2" -I"include"
sqlite3.c:在函数“void strftimeFunc(sqlite3_context*,int,sqlite3_value**)”中:
sqlite3.c:14727:错误:从
void*' to
char*'进行的无效转换
我在 sqlite.org/sqlite-amalgamation-3071502.zip 中得到的文件是
shell.c、sqlite3.h、sqlite3.c、sqlite3ext.h,我在其他讨论中看到不需要 shell.c...
此外,人们在谈论 gcc 和 g++...。