SQLite是一款轻量级的、基于文件的嵌入式数据库,实现自包容、零配置、支持事务的SQL数据库引擎。因为项目的需求,需要在服务器上使用sqlite3,由于权限受限,在代码编译的时候踩了很多的坑,在这里分享一下解决问题的过程。
关于sqlite3的安装网上有很多的教程,这里就不再赘述,在sqlite3安装完成后还需要安装libsqlite3-dev,不安装这个后续的代码会无法编译,我是直接找管理员安装的。
代码在进行编译的时候,需要添加-lsqite3
,否则将会出现以下错误,正确的编译命令是gcc sql.c -o sql -lsqlite3
。
但是这时候又会出现新的报错,这是因为缺少库文件导致,在已有的动态链库的目录中找不到libsqlite3.so
。
如果有权限的话,可以直接新建链接,直接将其放入/usr/lib
目录下。找到libsqlite3-dev的安装目录,里面包含了相关的文件,只需要用ln
命令将这里的文件链接到/usr/lib
即可。
但我没有权限,因此会直接报错。
因此我需要在环境变量中添加相关的路径,让其在编译的时候到相关的目录下查找头文件以及库文件。
export CPATH=/gss1/App_dir/anaconda3/envs/libsqlite/include
export LIBRARY_PATH=/gss1/App_dir/anaconda3/envs/libsqlite/lib
export LD_LIBRARY_PATH=/gss1/App_dir/anaconda3/envs/libsqlite/lib
然后再进行编译,就能得到可执行文件。