首页 > 代码库 > 编译动态库和连接动态库
编译动态库和连接动态库
$ mkdir 1;cd 1 $ cat >plus.c int plus(int i0, int i1) { return i0 + i1; } $ cat >plus.h int plus(int i0, int i1); $ cat >main.c #include "plus.h" int main(void) { return plus(1,2); } $ cat >Makefile main: main.o libplus.so plus.h gcc -g -L. -o main main.o -lplus rm main.o plus.o main.o: main.c gcc -c -g -o main.o main.c libplus.so: plus.o gcc -g -shared -o libplus.so plus.o plus.o: plus.c gcc -c -g -fPIC -o plus.o plus.c .PHONY: clean clean: rm main libplus.so main.o plus.o $ ls Makefile main.c plus.c plus.h $ make gcc -c -g -o main.o main.c gcc -c -g -fPIC -o plus.o plus.c gcc -g -shared -o libplus.so plus.o gcc -g -L. -o main main.o -lplus rm main.o plus.o $ file libplus.so libplus.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped $ file main main: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped $ LD_LIBRARY_PATH=. $ ldd main | grep plus libplus.so => ./libplus.so (0x00007f8018644000) $ ./main $ echo $? 3 $
编译动态库和连接动态库
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。