首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

问:Linux下如果把源代码编译成库?解决思路

2012-03-24 
问:Linux下如果把源代码编译成库?就想windows下的lib库一下,如何编译?我有一个开源的跨平台的库,在windows

问:Linux下如果把源代码编译成库?
就想windows下的lib库一下,
如何编译?
我有一个开源的跨平台的库,在windows下我把它编译成lib库使用,在linux该如何编译?该如何使用呢?

[解决办法]
编译成 .o
然后使用

ar rc xxxx.a 1.o 2.o

ar rc [filename.a] [filename.o list]
[解决办法]
要写Makefile
[解决办法]
Linux下没有Makefile能编译吗?
[解决办法]
动态库是.so文件,静态库.o文件
GCC 命令项加上-fPIC -shared
[解决办法]
大一点的项目都会用makefile管理编译工作 当然如果非要和自己过不去 非要把自己累傻累晕 那么可以选择自己一个一个编译 :) 哈哈 :) 或者其他什么方法说不定也成 比如写个shell脚本来 :)

生成静态库呢ar就成 如果要生成动态库就得用gcc加上特定的编译选项了 就是楼上给出的-fPIC -shared

[解决办法]
静态库.o文件
-------------
更正:静态库.a文件
[解决办法]
编译(不用默认)生成目标代码
然后链接链接才生成最终文件。看链接的参数
[解决办法]
// 在当前目录将mpeg4_encoder.c将生成动态库libenc.so.1.0
gcc -I.-fpic -shared mpeg4_encoder.c -o libenc.so.1.0

//生成静态库libenc.a的Makefile.am
SUBDIRS=

EXTRA_DIST=

noinst_LIBRARIES=libenc.a

libdvrenc_a_SOURCES=mpeg4_encoder.c

热点排行