2016-04-15 52 views
0

我目前的工作,需要我建立一個Makefile致命錯誤執行的Makefile

  • 創建一個包括目錄
  • 副本math330.h文件到包括目錄
  • 創建分配時一個lib目錄
  • 編譯三角函數和EXP的.c文件作爲目標文件
  • 使庫
  • 安裝庫lib目錄
  • 編譯反對和庫目錄

所以我大部分的編碼下來此的CLI程序,但我不斷收到錯誤,當我試圖把的.o的對trig文件夾中的函數。錯誤是

trig/cos330.c:1:10: fatal error: 'math330.h' file not found 

這只是我需要幫助的最後一部分!有人能給我提示我能做些什麼嗎?謝謝!

all: 
    mkdir -p ./include 
    mkdir -p ./lib 
    cp math330.h ./include 
    gcc -l ./include/ -c trig/*.c 
    gcc -l ./include/ -c exp/*.c 
    mv *.o ./lib/ 
    ar r libmath.a lib/* 
    mv libmath.a lib/ 
    gcc -l ./include/ cli/cli.c -L ./lib -lmath -lm 

clean: 
    rm -rf include 
    rm -rf lib 
    rm a.out 
+1

'-l'選項看起來不對。你想要'-I'還是'-L'? – tripleee

+0

這絕對不是創建'makefile'的好方法。請閱讀一些關於編寫makefile的介紹,或者在這裏找到關於SO的問題 - 這裏有很多選擇。請你一回答就不要回避刪除問題;它不是長期受歡迎的配方。 –

回答

1

指定的include目錄的選項是資本-I(I),而不是小寫的L(l)。

gcc -I ./include … 

小寫的ell表示庫名。鑑於-l ./include,貧窮的接頭將有一個精神分裂的時間尋找一個圖書館lib./include.alib./include.so鏈接(可能在./lib目錄),它可能不會找到它。但它沒有那麼遠。