【发布时间】:2016-07-15 17:30:27
【问题描述】:
我正在使用 JetBrains CLion 进行纯 C (C ANSI) 开发,我知道它的目标是 C++,但我的公司只使用 C 和 CLion 仅使用 CMake 作为构建系统。
我的系统是Debian Jessie系统,安装了sqlite3和libsqlite3-dev。
我正在尝试像这样构建一个简单的 sqlite3 项目:
#include <sqlite3.h>
#include <stdio.h>
int main() {
sqlite3 *sqlConnection;
int ret;
ret = sqlite3_open("database/path.db, &sqlConnection);
if (ret) {
printf("Ups ... can't open %d", ret);
}
do_some_queries(sqlConnection);
return 0;
}
自动生成的 CMakeLists.txt 如下。
cmake_minimum_required(VERSION 3.3)
project(Project)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES main.cpp )
add_executable(Project ${SOURCE_FILES})
在构建时,无论是通过 Clion,还是通过命令行,都会出现链接器错误:
...
undefined reference to `sqlite3_prepare_v2'
undefined reference to `sqlite3_column_int'
undefined reference to `sqlite3_open'
...
我知道我必须向 CMake 指出 sqlite3 的位置,但我找不到这样做的方法。
“find_package”和“find_library”可能会这样做,但我找不到方法。
我也找到了this Cmake file,但是没能成功使用。
那么,如何将 sqlite3 与 Cmake 集成?
【问题讨论】:
-
将
sqlite3.c添加到来源。 -
@CL。你说下载sqlite3源代码和项目一起编译?我已经尝试过并且遇到了其他链接器错误(线程等),而且,不喜欢在系统周围复制源代码。会努力的。