ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

symmetricDS用cmake编译

2019-05-03 12:43:09  阅读:349  来源: 互联网

标签:symclient cmake libraries dev symmetric 编译 client symmetricDS library


symmetricDS 是同步数据库的软件,client 端提供了 C语言的库,默认是用 Eclipse 构建,也可以自己写CMakeLists 构建,下面是在Ubuntu 系统编译并运行成功的步骤:

依赖

根据symmetric-client-clib 可以用 apt-get 安装一些依赖,LibCSV 的包名是 libcsv-dev,此外还要安装 libzip-dev,完整的命令为

sudo apt-get install libcsv-dev libzip-dev libsqlite3-dev libcurl4-gnutls-dev

带 dev 表明安装了所需的头文件,因为依赖控制的原因, 相应的运行时库 so 如 libsqlite3.so 也会自动安装。

源码

使用 svn 工具下载 symmetric-ds 的 GitHub 子目录,然后下载 symmetric-client-native 的入口文件放到和 libsymmetric.c 同一文件夹下(称为项目根目录)

svn checkout https://github.com/JumpMind/symmetric-ds/trunk/symmetric-client-clib ./
cd symmetric-client-clib
wget https://github.com/JumpMind/symmetric-ds/raw/3.10/symmetric-client-native/src/SymClientNative.c
wget https://github.com/JumpMind/symmetric-ds/raw/3.10/symmetric-client-native/inc/SymClientNative.h

构建文件

需要创建两个CMakeLists.txt,一个放在项目根目录下面,内容是:

cmake_minimum_required(VERSION 3.5) # version is not important
project(symmetricdb LANGUAGES C)
include_directories(${PROJECT_SOURCE_DIR}/inc)
add_subdirectory(src)
add_executable(symclient SymClientNative.c)
find_library(ZIP zip) 
find_library(CURL curl)
find_library(SQLITE sqlite3)
find_library(CSV csv)
target_link_libraries(symclient libsymclient)
target_link_libraries(symclient ${CURL})
target_link_libraries(symclient ${ZIP})
target_link_libraries(symclient ${SQLITE})
target_link_libraries(symclient ${CSV})

另一个放到 src 文件夹下,内容是:

cmake_minimum_required(VERSION 3.5)
FILE(GLOB_RECURSE filelist ${CMAKE_CURRENT_SOURCE_DIR} *.c)
add_library(libsymclient ${filelist})

编译

在项目根目录下用 out of source build 的方法进行编译构建:

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..

标签:symclient,cmake,libraries,dev,symmetric,编译,client,symmetricDS,library
来源: https://www.cnblogs.com/zhaofeng-shu33/p/10804791.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有