2016-08-11 11 views
0

私はCアプリケーションを持っています:Eclipseは動的にリンクされていますが、静的にリンクされたアプリケーションのみを扱うシミュレータを使用していることがわかります。私のMakefileの次のように:Cアプリケーションは動的にリンクされません

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 [email protected] 

.c.o: 
    $(CC) $(CFLAGS) $< -lm -o [email protected] 


clean: 
    rm -fr $(OBJECTS) $(EXECUTABLE) 

通常の静的リンクは動作するはずですが、私は、次のコマンドを入力するとき:

:〜/ワークスペース/ FFT $ファイルFFT

私はこのメッセージが表示されます:

FFT:ELF 64ビットLSB実行、x86-64で、バージョン1(SYSV)、動的にリンクされた(共有ライブラリを使用)、GNU/Linuxの2.6.24ため、BuildID [SHA1] = 0xa499c8104f09cd85fbfbb33c75e51c606f117acf、剥離しない

誰かが私に助けてくれましたか?

+1

* "静的にリンクされたアプリケーションのみを扱うシミュレータを使用しています" *しかし、あなたのホストGCCでコンパイルしてください。何のシミュレータ?また、私はかなり確信しています '-O5'は最適化されたレベルではありません。 「-O3」が最も高い。 SOURCESリストには何が追加されていますか? –

答えて

3

LDFLAGSセクションに-staticフラグを追加する必要があります。

CFLAGSには、-staticフラグも必要ありません。

+0

私は '-static'もCFLAGSから削除できると思います。 – HolyBlackCat

+0

私は確認します:未知のフラグは無視されます –

+0

@HolyBlackCatそれを追加するために編集されました。ありがとう。 – blue112

関連する問題