本文共 1459 字,大约阅读时间需要 4 分钟。
???????????????.a?.so???????.a?.so???????.o????????????????.o?????????????????
?????????????mylib.h????mylib.c?????????????????????
// mylib.h#includevoid Myprintf();
// mylib.c#include "mylib.h"void Myprintf() { printf("Hello World\n");} ????gcc -c??.o???????????test??mylib.o?mylib.h?????????????????????test.c????????????mylib.h?????Myprintf??????????????mylib.o???
??????????????????????????????????????add.c add.h sub.c sub.h?????
?????????
// add.h#includeint add(int x, int y);
// add.c#include "add.h"int add(int x, int y) { return x + y;} // sub.h#includeint sub(int x, int y);
// sub.c#include "sub.h"int sub(int x, int y) { return x - y;} ??????.c????????.o???????ar -rc????????
ar -rc libMYLIB.a add.o sub.o
????????????.a????????????????????my_method?????include?lib??????.h?????include?????.a?????lib????
????????????????Makefile????????????-fPIC????????????????-shared??????????
Makefile?????
libMYLIB.so: add.o sub.o gcc -shared -o $@ $^add.o: add.c gcc -fPIC -c add.csub.o: sub.c gcc -fPIC -c sub.cclean: rm -rf *.o libMYLIB.so my_methodpackage: mkdir -p my_method/include mkdir -p my_method/lib cp *.h my_method/include cp *.so my_method/lib
?????????????????????????-static???
gcc -o test.exe test.c -I./my_method/include -L./my_method/lib -lMYLIB
????????????????????????????LD_LIBRARY_PATH????????
export LD_LIBRARY_PATH=./my_method/lib
????????????????????
转载地址:http://ojsi.baihongyu.com/