Makefile 文件 configure可执行文件 跟 CFLAGS 参数

在使用 configure 进行交叉编译的时候,要指定交叉编译工具链。同时可能要指定一些参数交叉编译的参数。
例如
常见的Makfile 文件

CC = arm-poky-linux-gnueabi-gcc

OTHER_HEADERS = ../../mjpg_streamer.h ../../utils.h ../output.h ../input.h

CFLAGS += -O1 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC
CFLAGS += -march=armv7ve -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/home/book/Downloads/sysroots/cortexa7hf-neon-poky-linux-gnueabi
#CFLAGS += -g
#CFLAGS += -DDEBUG

在文件中用 CFLAGS 指定参数

那么 ./configure 也是用 CFLAGS 进行指定的
例如:

./configure --host=arm-poky-linux-gnueabi  --prefix=/home/book/Music/1111  --enable-shared --enable-static  CFLAGS="-march=armv7ve -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/home/book/Downloads/sysroots/cortexa7hf-neon-poky-linux-gnueabi"
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 `configure` 脚本生成的 Makefile 中,通常会将 `CFLAGS` 变量的值设置为 `$(CPPFLAGS) $(CFLAGS)`,也就是说,如果你在运行 `configure` 脚本时设置了 `CFLAGS` 环境变量,那么这些选项会被传递到 Makefile 中。 因此,你可以在运行 `configure` 脚本时设置 `CFLAGS` 环境变量,来指定编译器选项,例如: ``` CFLAGS="-Wall -O2 -I/path/to/include" ./configure --prefix=/usr/local ``` 这样,在编译程序时就会使用 `-Wall`、`-O2` 和 `-I/path/to/include` 这些选项。注意,这种方式设置的选项会被应用到所有的源文件中,包括库文件可执行文件。 另外,如果你使用的是 Autoconf 工具链,那么可以在 `configure.ac` 文件中使用 `AC_SUBST` 宏将 `CFLAGS` 变量传递到 Makefile 中,例如: ```autoconf AC_SUBST([CFLAGS], ["-Wall -O2 -I/path/to/include"]) ``` 这样,在生成的 Makefile 中会包含一个名为 `CFLAGS` 的变量,其值为 `-Wall -O2 -I/path/to/include`。这个变量可以在 Makefile 中使用,例如: ```makefile CC = gcc CFLAGS += $(MY_CFLAGS) $(DEBUG_FLAGS) LDFLAGS += $(MY_LDFLAGS) LDLIBS += $(MY_LIBS) all: my_program my_program: main.o libmylib.a $(CC) $(LDFLAGS) -o $@ $< -L. -lmylib $(LDLIBS) libmylib.a: mylib.o ar rcs $@ $< main.o: main.c mylib.h $(CC) $(CFLAGS) -c -o $@ $< mylib.o: mylib.c mylib.h $(CC) $(CFLAGS) -c -o $@ $< clean: rm -f *.o *.a my_program ``` 在这个示例中,我们使用 `CFLAGS` 变量来指定编译器选项,这个变量的值包含了 `-Wall -O2 -I/path/to/include` 以及其他一些选项。在编译命令中,我们使用了 `$(CFLAGS)` 变量来传递编译器选项。这样,如果你想修改编译器选项,只需要修改 `configure.ac` 文件中的 `AC_SUBST` 宏即可,不需要手动修改 Makefile
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值