[求助]在code::block中如何设置一个外部库?

dongbeisong 2013-01-03 05:05:34
我要用到一个比较复杂的库,所以找了sqlite3库练手。虽然最后程序成功运行,但是还是有一些疑问。
我从一个教程上学习,把外部库都放在一个统一的路径,dll文件、头文件、lib文件分别位于其下面一个单独的子目录。
外部库在我机器上同一路径为D:\cpp_ex_libs, sqlite在此文件夹下的目录为:

我设置了全局变量:

为了防止不同项目混乱,我没有把sqlite路径加到setting—compiler setting 下面,而是加到项目的Buld Option的下面:

Buld option-link setting:加入链接库.lib文件

Buld option-Search directories-linker:加入链接库目录

在Buld option-Search directories-compiler以及resource directories:加入头文件目录。
我的程序根本没有调用dll,只是调用了头文件:

#include <iostream>
#include <sqlite/sqlite3.h>

using namespace std;

int main()
{
cout << "Hello sqlite world!" << endl;

return 0;
}

但是此时会报错,提示:

D:\program\cpp\sqlitetest\main.cpp|3|致命错误:sqlite/sqlite3.h:No such file or directory|

我需要在项目—porperties—C/C++ parser option中添加:$(#sqlite)\include,才能引用头文件。
但是引用头文件不用<sqlite/sqlite3.h>的形式,必须使用一下形式:

#include <sqlite3.h>

此时程序正常构建,但是提示找不到dll文件:

我必须把dll文件放到和lib文件一起,或复制到项目文件夹下,编译程序debug或release下就能运行了。
我的问题有几个:
首先,调用一个外部库到底需要设置哪些地方。我现在能够调用外部库,但是有点迷糊。
第二,我如何才能通过<库名/头文件名.h>方式调用头文件。因为我觉得这样才能够知道这个文件不是项目文件,是外部的。
第三,dll文件在库目录下的bin文件夹中,我怎样才能让code::block自己找到它,或把它复制到项目文件夹下。
问题有点多,我存属小白,这个元旦都毁在code::block上了。谢谢各位老大!
...全文
321 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ForestDB 2013-01-08
  • 打赏
  • 举报
回复
LZ可以适当看点手工编译及make相关的知识,IDE屏蔽了太多的实质性的东西了。 对于编译型的语言,开发环境没那么复杂,一个INCLUDE_PATH,一个LIB_PATH,然后就是一些编译选项和链接选项。
科比布莱恩特 2013-01-04
  • 打赏
  • 举报
回复
引用 楼主 dongbeisong 的回复:
我要用到一个比较复杂的库,所以找了sqlite3库练手。虽然最后程序成功运行,但是还是有一些疑问。 我从一个教程上学习,把外部库都放在一个统一的路径,dll文件、头文件、lib文件分别位于其下面一个单独的子目录。 外部库在我机器上同一路径为D:\cpp_ex_libs, sqlite在此文件夹下的目录为: 我设置了全局变量: 为了防止不同项目混乱,我没有把……
放到一块,不然会缺少库的。

24,860

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧