gpt4 book ai didi

c - 使用 vpath 的简单 make 文件不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 07:25:33 41 4
gpt4 key购买 nike

我使用 vpath 编写了简单的 makefile

COMMON_CFLAGS = -Wall -O2 -DA2CSCC=0
CFLAGS = $(COMMON_CFLAGS) -I/usr/include/ -I./ -std=gnu99 -g

VPATH = ./test_app

CC: LD_LIBRARY_PATH=./libs gcc

SRC: test.c

all: TARGET

TARGET:
$(CC) $(CFLAGS) $(SRC) -o test

它给 main 提供了 undefined reference 。

当我直接给的时候

TARGET:

       gcc test.c -o test
gcc  test.c TARGET
gcc: error: test.c: No such file or directory
gcc: error: TARGET: No such file or directory
gcc: fatal error: no input files
compilation terminated.

最佳答案

make 不会通过您的命令并用基于 VPATH 的新版本替换任意字符串。如果您想使用 VPATH,您必须使用自动变量。只有自动变量会被重置。

这一切在 GNU make 手册中都有相当清楚的解释:http://www.gnu.org/software/make/manual/html_node/Recipes_002fSearch.html

您的 makefile 中还有其他各种问题。像这样更改您的规则:

all: test

test: $(SRC)
$(CC) $(CFLAGS) $^ -o $@

请注意:创建名为 test 的程序绝不是个好主意。这是一个内置的 shell,也是 /usr/bin 中的一个程序,它只会导致混淆。使用其他名称,例如 mytest 或类似名称。

关于c - 使用 vpath 的简单 make 文件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18736366/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com