【发布时间】:2023-03-27 23:23:02
【问题描述】:
我有一个 C 应用程序:与 eclipse 动态链接的 FFT,但看到我使用的模拟器只处理静态链接的应用程序,我不得不在我的 Makefile 中添加“-static”标志,如下所示:
CC=gcc
CFLAGS=-g -static -c -Wall -O5 -mavx
LDFLAGS=
SOURCES=$ fft.c
OBJECTS=$(SOURCES:.c=.o)
EXECUTABLE=fft
all: $(TASKMAP) $(SOURCES) $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) -lm -o $@
.c.o:
$(CC) $(CFLAGS) $< -lm -o $@
clean:
rm -fr $(OBJECTS) $(EXECUTABLE)
通常静态链接应该可以工作,但是当我输入以下命令时:
:~/workspace/fft$ 文件 fft
我收到这条消息:
fft:ELF 64 位 LSB 可执行文件,x86-64,版本 1 (SYSV),动态链接(使用共享库),适用于 GNU/Linux 2.6.24,BuildID[sha1]=0xa499c8104f09cd85fbfbb33c75e51c606f117acf,未剥离
有人可以帮我解决这个问题吗?
【问题讨论】:
-
“我正在使用一个只处理静态链接应用程序的模拟器” 但是用你的主机 GCC 编译。什么模拟器?另外,我相当肯定
-O5不是一个固定的优化级别;-O3是最高的。 SOURCES 列表中额外的 $ 是怎么回事?
标签: c