C应用程序不会动态链接

C应用程序不会动态链接,c,C,我有一个C应用程序:FFT,它与eclipse动态链接,但鉴于我使用的模拟器只处理静态链接的应用程序,我不得不在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) $(EXECUTAB

我有一个C应用程序:FFT,它与eclipse动态链接,但鉴于我使用的模拟器只处理静态链接的应用程序,我不得不在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)
CC=gcc
CFLAGS=-g-static-c-Wall-O5-mavx
LDFLAGS=
来源=$fft.c
对象=$(源:.c=.o)
可执行文件=fft
全部:$(任务映射)$(源)$(可执行)
$(可执行文件):$(对象)
$(CC)$(LDFLAGS)$(对象)-lm-o$@
.c.o.:
$(CC)$(CFLAGS)$<-lm-o$@
清洁:
rm-fr$(对象)$(可执行文件)
通常情况下,静态链接应该可以工作,但当我键入以下命令时:

:~/workspace/fft$file fft

我得到这个信息:

fft:ELF 64位LSB可执行文件,x86-64,版本1(SYSV),动态链接(使用共享库),适用于GNU/Linux 2.6.24,BuildID[sha1]=0xa499c8104f09cd85fbfbb33c75e51c606f117acf,未剥离


有人能帮我吗?

您需要将
-static
标志添加到
LDFLAGS
部分


CFLAGS

中,您也不需要
-static
标志。您需要将
-static
标志添加到
LDFLAGS
部分


您也不需要
-static
标记在
CFLAGS

中,我认为
-static
也可以从CFLAGS中删除。我确认:未知标记为ignored@HolyBlackCat编辑后添加。谢谢。我想也可以从CFLAGS中删除
-static
。我确认:未知标志为ignored@HolyBlackCat编辑后添加。谢谢。“我使用的模拟器只处理静态链接的应用程序”,但使用您的主机GCC进行编译。什么模拟器?另外,我相当肯定
-O5
不是一个固定的优化级别<代码>-O3是最高的。源代码列表中的额外美元是怎么回事?“我使用的模拟器只处理静态链接的应用程序”,但使用您的主机GCC编译。什么模拟器?另外,我相当肯定
-O5
不是一个固定的优化级别<代码>-O3是最高的。资源列表中的额外美元是怎么回事?