小编Tom*_*Tom的帖子

告诉gcc函数调用不会返回

我正在使用C99GCC.

我有一个static inline在头文件中声明的函数,我无法修改.

该函数永不返回但未标记__attribute__((noreturn)).

如何以告诉编译器不会返回的方式调用该函数?

我从我自己的noreturn函数调用它,部分想要抑制"noreturn函数返回"警告,但也想帮助优化器等.

我已尝试在属性中包含声明,但会收到有关重复声明的警告.

我已经尝试创建一个函数指针并将该属性应用于该函数,但它表示函数属性不能应用于指向函数.

c gcc gcc-warning noreturn

24
推荐指数
2
解决办法
6497
查看次数

Makefile 编译源文件列表

我有我希望 Makefile 编译的文件列表,每种源语言都有一个列表:

CFILES=  Src/Application/main.c  Src/Core/data.c  Lib/routines.c
ASFILES= Src/Application/startup.s  Lib/sqrt.s
Run Code Online (Sandbox Code Playgroud)

我希望所有输出都在一个目录中:

OBJDIR= output
Run Code Online (Sandbox Code Playgroud)

我该如何做相当于:

output/main.o     : Src/Application/main.c
    cc -c -o output/main.o Src/Application/main.c

output/data.o     : Src/Core/data.c
    cc -c -o output/data.o Src/Core/data.c

output/routines.o : Lib/routines.c
    cc -c -o output/routines.o Lib/routines.c

output/startup.o  : Src/Application/startup.s
    as -o output/startup.o Src/Application/startup.s

output/sqrt.o     : Lib/sqrt.s
    as -o output/sqrt.o  Lib/sqrt.s
Run Code Online (Sandbox Code Playgroud)

列表中每个文件的配方都是相同的。

输入文件位于各种不同的目录中,仅列出它们的文件名并使用搜索路径来查找它们是不可接受的,必须使用它们的显式路径。

输出文件名是源文件名的基本名称,扩展名更改为 o。不同源语言的列表之间不存在重复的基本名称。

我不想列出目标文件,这应该来自源列表。

我正在使用 gnu make,但是便携式解决方案的加分项。

makefile

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

c ×1

gcc ×1

gcc-warning ×1

makefile ×1

noreturn ×1