问: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