VS中使用第三方库原理(配置sqlite数据库)

2015-01-27 22:40:15 · 作者: · 浏览: 19

我们在编写程序时,,不可避免的会使用第三方的库文件,很少使用源文件(.cpp),大部分是使用对类进行声明的头文件和封装了类的链接库(静态lib或动态dll),比如我们写程序用的iostream这个库,当然这个是已经设置好的官方的库,让我们使用某个第三方的库时,需要自己来进行配置。

C++的库会把函数、类的声明放在*.h中,实现放在*.cpp或*.cc中。编译之后,*.cpp,*.cc,*.c会被打包成一个.lib文件,这样可以保护源代码。

所以,要使用一个库,除了要include他的头文件以外,还要在链接过程中把lib加进去。

有两种方法解决这个问题。

主要有两种办法:

第一种:我们可以将我们所需要的库文件(.lib),已经该头文件(.h)拷贝到我们程序的目录下,其实只要拷贝到程序目录下即可,因为编译时,编译器会自动会在项目所在的文件里逐个搜素,若我们使用的库文件存在动态链接文件时,一般我们把它拷贝到我们程序可执行文件所存在的文件中,这样我们就可以在我们的程序中使用。

但是有个缺点,假若我们需要使用的库文件太多,这样拷贝会比较麻烦,效率比较低。我们可以使用第二种方法。

第二种:我们可以在我们的程序中加载我们所需要的库文件,从而不需要拷贝到自己程序的目录下。我们以一个例子来说明,我现在要在程序中引用sqlite数据库的API函数

举例:

新建项目:zrl(随便起的),这里仅仅是演示,所以我们新建一个空工程,运行一下(产生可执行文件)

\

1 添加文件引用的lib静态库路径:工程---属性---配置属性---链接浓ky"http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vctLS2zo7nmLS0tuL2807/ixL/CvKO6vNPJz2xpYs7EvP605rfFxL/CvKGjKNei0uKjutXiuPbOxLz+tcS05rfFxL/CvNa4tcTKx8TjtcS/4s7EvP7L+bfFtcTX7rrz0ru8trXExL/CvKOs0ru2qLK70qq0+MnPxOO1xM7EvP7D+6Os1eLA7732vfbWuLXEyse05rfFobG/4s7EvP7L+dTazsS8/sS/wryhsaOsz8LNrCk8L3A+CjxwPjxpbWcgc3JjPQ=="https://www.cppentry.com/upload_files/article/57/1_xzavf__.png" alt="\">

\

2 然后添加工程引用的lib文件名:工程---属性---配置属性---链接器---输入---附加依赖项:加上lib文件名,这个步骤等同于在程序中添加 #pragma comment(lib, “xxx.lib”)

\

3添加工程的头文件目录:工程---属性---配置属性---c/c++---常规---附加包含目录:加上头文件存放目录。 此例子中:

\

4添加工程引用的dll动态库:把引用的dll放到工程的可执行文件所在的目录下。

或者我们也可以不添加附加库目录,附加包含目录这两个,我们也可以在 工程---属性---配置属性---VC++属性―包含目录 添加 头文件所在的文件目录。

\

在工程---属性---配置属性---VC++属性―库目录 添加库目录所在的文件目录。但此时仍要设置附加依赖项(和上面一样)。

同时总结一下在引用第三方库时所出现问题:

1若附加链接库中设置错误(拼写错误等),或者既没有添加也没有使用#pragmacomment(lib,"xxx.lib") 来设置

这个过程出错会出现link error,大概是“未定义的函数XXX”。

2库目录错误:就是寻找.lib文件的目录。如果设置错误,会link error,提示"找不到XXX.lib"。

这样设置完后,我们就可以是使用我们所添加的库的函数了。