能否将cliofetion做成静态连接库?

8 views
Skip to first unread message

陈若涵

unread,
Jun 3, 2011, 8:52:08 PM6/3/11
to ofe...@googlegroups.com
我了解一点cmake,也了解一点C,但是因为并不会写linux的程序,所以并不了解这写库和程序之间的关系。

我只是想要一个单独的cliofetion程序,复制到别的机器上也能用,而不是非要在那里也编译一遍libofetion才行,这样可以吗?

我也做过尝试,将CMakeLists里面的cliofetion的库改成libofetion.a,但是不成功,编译都不通过

所以在这里请教一下

-----------
悲观的思考,乐观的生活.我们既需要思考的深度,也需要生活的温度!

YunQiang Su

unread,
Jun 3, 2011, 9:39:30 PM6/3/11
to ofe...@googlegroups.com
有个 cliofetion-standalone

2011/6/4 陈若涵 <crha...@gmail.com>:

> --
> 您收到此邮件是因为您订阅了 Google 网上论坛的“Openfetion ”论坛。
> 要向此网上论坛发帖,请发送电子邮件至 ofe...@googlegroups.com
> 要取消订阅此网上论坛,请发送电子邮件至 ofetion+u...@googlegroups.com
> 若有更多问题,请通过 http://groups.google.com/group/ofetion?hl=zh-CN 访问此网上论坛。
>

--
YunQiang Su

陈若涵

unread,
Jun 3, 2011, 10:18:34 PM6/3/11
to ofe...@googlegroups.com
能不能请教一下这个是怎么做的?

因为我针对自己的需求对cliofetion做了一点扩展,就是增加了一个群发功能,http://code.google.com/r/crhan123-ofetion/

所以想学习一下怎么做standalone的版本,谢谢~


-----------
悲观的思考,乐观的生活.我们既需要思考的深度,也需要生活的温度!



2011/6/4 YunQiang Su <wzs...@gmail.com>

YunQiang Su

unread,
Jun 3, 2011, 10:21:27 PM6/3/11
to ofe...@googlegroups.com
目录的最顶层有两个 sh 脚本,是用来生成 tarball 的。
用你自己的c文件换掉原来那个,运行 gentar.sh 就可以了


--
YunQiang Su

陈若涵

unread,
Jun 3, 2011, 10:59:13 PM6/3/11
to ofe...@googlegroups.com
搞定,谢谢。!

不过问个问题,我这方面很不清楚。为什么我把CMakeLists里面的
target_link_libraries改成cliofetion /usr/local/lib/libofetion.a
这样不行呢?

静态连接库不是这样用的咩?


-----------
悲观的思考,乐观的生活.我们既需要思考的深度,也需要生活的温度!



2011/6/4 YunQiang Su <wzs...@gmail.com>
目录的最顶层有两个 sh 脚本,是用来生成 tarball 的。
YunQiang Su

--
您收到此邮件是因为您订阅了 Google 网上论坛的“Openfetion ”论坛。
要向此网上论坛发帖,请发送电子邮件至 ofe...@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 ofetion+u...@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/ofetion?hl=zh-CN 访问此网上论坛。

target_link_libraries

YunQiang Su

unread,
Jun 3, 2011, 11:01:45 PM6/3/11
to ofe...@googlegroups.com
贴出完整的来?
2011/6/4 陈若涵 <crha...@gmail.com>:

--
YunQiang Su

陈若涵

unread,
Jun 3, 2011, 11:20:56 PM6/3/11
to ofe...@googlegroups.com
就是把46行的
target_link_libraries(cliofetion ${OFETION_LIBRARIES})

改成了

target_link_libraries(cliofetion /usr/lib64/libofetion.a)

然后make的时候出现这种错误:
(.text+0x2459): undefined reference to `sqlite3_errmsg'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../lib64/libofetion.a(fetion_user.c.o): In function `fetion_user_save':
(.text+0x2475): undefined reference to `sqlite3_close'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../lib64/libofetion.a(fetion_user.c.o): In function `fetion_user_load':
(.text+0x24ea): undefined reference to `sqlite3_open'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../lib64/libofetion.a(fetion_user.c.o): In function `fetion_user_load':
(.text+0x2542): undefined reference to `sqlite3_get_table'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../lib64/libofetion.a(fetion_user.c.o): In function `fetion_user_load':
(.text+0x256b): undefined reference to `sqlite3_close'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../lib64/libofetion.a(fetion_user.c.o): In function `fetion_user_load':
(.text+0x25a9): undefined reference to `sqlite3_errmsg'
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.2/../../../../lib64/libofetion.a(fetion_user.c.o): In function `fetion_user_load':
(.text+0x290c): undefined reference to `sqlite3_free_table'
collect2: ld returned 1 exit status
make[2]: *** [cliofetion] Error 1
make[1]: *** [CMakeFiles/cliofetion.dir/all] Error 2
make: *** [all] Error 2

肯定是我的问题嘛,,但是我想问的是。。静态连接库.a文件不是这么用的话,,那是怎么用呢,,,额,如果懒得回答这种基础问题的话我也表示理解,,这是我懒了。因为基础很不够,现在只想知道这个问题的答案,所以自己去搜索比较困难。。。

YunQiang Su

unread,
Jun 3, 2011, 11:23:51 PM6/3/11
to ofe...@googlegroups.com
2011/6/4 陈若涵 <crha...@gmail.com>:

> 就是把46行的
> target_link_libraries(cliofetion ${OFETION_LIBRARIES})
>
> 改成了
> target_link_libraries(cliofetion /usr/lib64/libofetion.a)
>
好像不是这么用,可能需要添加什么参数的,指定用静态库
这个问题不初级。
Reply all
Reply to author
Forward
0 new messages