wxSQLite3在Linux下的编译

因为之前用的wsSQLite3Github上的up主已经编译好的Windows动态链接库DLL,项目暂时没顾得上往Linux系列上部署,所以一直都那么用着,前几天正好有机会装了个Deepin(Debain Based),所以就顺势在Linux环境下搞一搞事情,于是就暴露出了一些问题。

采坑路线

1. 没有现成的so库可以用。

解决方案:没有那就自己编译吧,源代码都在那里摆着呢。
存在问题:既然要编译了,那肯定会有各种报错。

2. wsSQLite3编译难度太高,网上没有资料。

解决方案:换成 SQLCipherSQLCipher也需要编译,但是编译过程中没有遇到太大的麻烦。
存在问题:可能是我编译选项选的有问题,我们最需要的加解密接口可以正常调用,但并不好使。

3. SQLCipher加解密接口不好使。

解决方案:还是换回wsSQLite3。

编译wsSQLite3

废话就不多讲了,有什么报错也不提了,总之正确的做法大概只有一种,错误的报错五花八门,层出不穷。
wsSQLite3的编译依赖 wxWidgets,但是通过apt-get的方式安装的 wxWidgets 无法让 wsSQLite3 在编译的时候正确依赖,所以还是要先编译 wsWidgets

  1. 下载wsWidgets,编译。编译时可以参考《如何在 Ubuntu/Debian/Linux Mint 中编译和安装 wxWidgets》。文中提示可以使用 checkinstall 来将生成的目标文件打包成软件包,以便包管理器可以方便管理,我在使用 checkinstall 打包的时候失败了,所以就直接 make && make install 了。

  2. 编译 wsWidgets

    $ mkdir gtk-build
    $ cd gtk-build
    $ ../configure
    $ make && make install
    

    值得一提的是,参考资料中有使用 --disable-shared 选项,但是采坑后得之,Nodeffi 模块似乎只能调用动态库,所以这里不加这个参数。

  3. 部署 wsWidgets。听起来很扯,刚才不是已经部署完了吗?我也有点蒙,总之,将生成的 libwx_gtk3u_core-3.0.so.0 拷贝到 /usr/lib 下即可。

  4. 编译 wsSQLite3

    $ autoreconf
    $ mkdir build-hahahaha
    $ cd build-hahahaha
    $ ../configure
    $ make && make install
    
  5. 部署 wsSQLite3libwxode_gtk3u_wxsqlite3-3.0.so 就是最后要用到的动态链接库。

你可能感兴趣的:(wxSQLite3在Linux下的编译)