2011-10-02 113 views
0

我有一個名爲「aos」的目錄,其中我有make的結果,即.o文件和.a文件。gcc編譯和Make文件錯誤

我的測試用例文件位於「aos」目錄下名爲「test1」的目錄中。

我在test1目錄下有一個名爲main.c的文件(這是我要執行的文件)。我試着用這些命令

gcc -Wall -pedantic -I ../gtthreads.c -o main main.c ../gtthreads.a 

編譯文件,但我得到這些錯誤:

../gtthreads.c is not a directory 
../gtthreads.a is not a directory 

我到底錯在這裏做什麼?我如何引用位於「aos」目錄中的.a文件和.c文件?

回答

4

-I-L交換機用於分別將目錄添加到#include和鏈接器搜索路徑。所以,如果你在父目錄頭,但包括他們沒有在你的代碼相對路徑,你可以使用:

-I.. 

這將使gcc看在首部的父目錄。

如果你想編譯main.c,並且gtthreads.c從父目錄爲可執行文件,您可以:

gcc -Wall -pedantic -I.. ../gthreads.c main.c -o main 

如果你想編譯main.c並與gthreads.a文件中的父目錄鏈接,只是用途:

gcc -Wall -pedantic -I.. -o main main.c ../gtthreads.a