Android makefile 各变量用法 makefile -static 应用层通过操作文件操控硬件 使用制作好的工具链: 刚开始学习时,用一些已经制作好的工具链,使用以下命令解压到gcc-3.4.5-glibc-2.3.6目录 cd /work/tools tar xjf arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2 然后在环境变量PATH中增加路径,入下所示: (很重要...
1#include"apue.h"2#include"staticlibs.h"//包含静态库的头文件34staticvoidmy_exit1(void);5staticvoidmy_exit2(void);67intmain(void)8{9static_lib_func_add(1,9);//静态库函数10static_lib_func_mul(1,9);//静态库函数1112if(0!=atexit(my_exit2))13err_sys("can't register my_exit2")...
1#include"apue.h"2#include"staticlibs.h"//包含静态库的头文件34staticvoidmy_exit1(void);5staticvoidmy_exit2(void);67intmain(void)8{9static_lib_func_add(1,9);//静态库函数10static_lib_func_mul(1,9);//静态库函数1112if(0!=atexit(my_exit2))13err_sys("can't register my_exit2")...
//这里写./static_fun/static_fun.h的原因是Makefile里没有加-I./static_fun,所以需要指出相对路径 #include "static_fun/static_fun.h" int main(int, char**){ printf("hello so\n"); //这里用的是动态库的函数 int a = 1; int b = 2; int c = sum( a, b ); printf( "sum: %d + ...
-static可以直接指定使用静态库。 objdump -dS app > out 注意比较加了static和没有加static的可执行文件大小,及内部printf的地址。 gdb: 使用场景:程序编译无误,但是有逻辑错误。 加-g 编译 ---> gdb xxx (gcc gcbtest.c -o app -g) list l ---> b 行号 (设置断点 b 22 if i = 5 条件断点)...
LDFLAGS = -L. -lstatic_lib all: main main: main.o $(CC) -o $@ $< $(LDFLAGS) main.o: main.c $(CC) -c $(CFLAGS) $< ``` 在这个示例Makefile中,我们使用了变量CC、CFLAGS和LDFLAGS来指定编译器、编译参数和链接参数。在all目标中,我们指定了依赖项main,并在下面定义了main目标的规则。这里...
首先,根据生成的目标文件类型(ELF可执行文件,动态链接库文件或静态链接库文件),配置GEN_LIBS、GEN_DYN_LIB、EXCUTE_BIN、STATIC_LIBS和DYNAMIC_LIBS等变量。 其次,如果生成的目标文件依赖其它库文件,那么只要将LD_LIB_DIR设置成该动态库所在的目录,LD_LIBS设置成要链接的动态库文件名即可。更建议的做法是在当前C/...
-L /home/hello/lib表⽰将/home/hello/lib⽬录作为第⼀个寻找库⽂件的⽬录,寻找的顺序是:/home/hello/lib-->/lib-->/usr/lib-- >/usr/local/lib -lworld表⽰在上⾯的lib的路径中寻找libworld.so动态库⽂件(如果gcc编译选项中加⼊了“-static”表⽰寻找libworld.a静态库⽂件)
正因为动态库在程序运行时被链接,故程序的运行速度和链接静态库的版本相比必然会慢。目前链接程序在链接时一般是优先链接动态库的,除非用-static参数指定链接静态库。 二、GCC 介绍 gcc 作为编译工具,主要在 Linux 操作系统中使用,可以编译 C、C++、Object-C、JAVA 等语言。
Dynamic Library calls another static library: cc=$ (cross_compile) gcc ld=$ (cross_compile) LD cflags:=-fpic ldflags:=-shared-fpic ( Wildcard *.cpp) objs:=$ (Patsubst%.cpp,%.o,$ (SOURCE)) target_lib:=liblive.so INC =-I.. /librtmp all:$