私はJetBrains CLionを純粋なC(C ANSI)開発に使用しています。ターゲットはC++ですが、私の会社はCのみで動作します。 CLionはビルドシステムとしてCMakeのみを使用します。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がfollwingです。
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'
...
私はsqlite3のはCMakeのを指摘しなければならない知っているが、私は見つけることができませんこれを行う方法。
"find_package"と "find_library"がそれを行う可能性がありますが、どのように見つけることができません。
this Cmake fileも見つかりましたが、正常に使用できませんでした。
これで、sqlite3とCmakeをどのように統合できますか?
'sqlite3.c'をソースに追加します。 –
@ CL。あなたはsqlite3のソースコードをダウンロードし、プロジェクトと一緒にそれをコンパイルすると言う?私はそれを試して、他のリンカのエラー(スレッドなど)を持って、さらに、システムの周りのソースを複製するのが好きではありません。タフにしよう。 –
[cmakeファイルにリンカを追加する方法やコンパイルフラグを追加する方法](http://stackoverflow.com/questions/11783932/how-to-add-linker-or-compile-flag-in-cmake-file) – usr1234567