首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与biicode一起使用SQLite

与biicode一起使用SQLite
EN

Stack Overflow用户
提问于 2015-02-21 10:53:52
回答 1查看 97关注 0票数 1

到目前为止,我已经成功地使用了boost,谷物和gtest,使用了biicode,但是我在sqlite上遇到了麻烦。我试着用它做以下工作:

代码语言:javascript
复制
#include <sqlite3.h>

因此,我编辑了我的biicode.conf以包括这些行,包括标题的修改:

代码语言:javascript
复制
[requirements]
    sqlite/sqlite:9
[includes]
    sqlite.h: sqlite/sqlite/sqlite3/sqlite3.h

但是,当我试图调用bii :build时,它会执行以下操作

代码语言:javascript
复制
WARN: Removing unused reference to "sqlite/sqlite: 9" from myuser/test "requirements"

然后我得到了预期的结果:

代码语言:javascript
复制
database_impl.cpp:(.text+0x516): undefined reference to `sqlite3_exec'

令人惊讶的是,尽管sqlite3.h显然不包括在内,编译还是成功了,但这可能是因为对sqlite的调用来自一个模板函数。

我看过示例,但是CMakeList.txt似乎没有添加任何额外的包含目录。例如,对于boost,我不得不添加:

代码语言:javascript
复制
SET(Boost_USE_STATIC_LIBS OFF)
bii_find_boost(COMPONENTS chrono system filesystem log thread REQUIRED)

target_include_directories(${BII_BLOCK_TARGET} INTERFACE ${Boost_INCLUDE_DIRS})
target_link_libraries(${BII_BLOCK_TARGET} INTERFACE ${Boost_LIBRARIES})

但我发现的两个示例这里这里似乎没有向包含目录添加任何内容,甚至连链接文件夹都没有添加。我认为sqlite必须使用您的源代码进行编译,那么如何使biicode自动地将这些文件添加到我的项目中呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-21 11:57:08

有几个问题。您只是在[includes]sqlite.h中编写,而不是sqlite3.h,您应该只写前缀sqlite/sqlite/sqlite3,而不是完整的依赖项名称。

然后,你可以这样解决它:

代码语言:javascript
复制
[requirements]
    sqlite/sqlite: 9
[includes]
    sqlite3.h: sqlite/sqlite/sqlite3

或者,您可以尝试上传到费尼克斯用户的费尼克斯版本:

代码语言:javascript
复制
[requirements]
    fenix/sqlite: 0
[includes]
    sqlite3.h: fenix/sqlite

不要担心“警告”消息,它说biicode忽略sqlite3.c文件,因为它被重新编码到块CMakeLists.txt中以捕获这个文件;)

注意到:您应该用双引号而不是<>来编写外部#includes,因为最后一个引用的是系统头,而biicode可能使用的是一些系统dep,但您没有意识到这一点。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28644907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档