2012-07-31 168 views
1

我使用OpenCV的Mac上,我每次編譯程序的時候,我必須鍵入:在mac上,如何添加路徑到環境變量?

g++ -I /usr/local/include -L /usr/local/lib main.cpp 

我能做些什麼,以避免打字-I和-L PARAMS?

+1

你不需要任何的這些 - 海灣合作委員會默認情況下自動搜索這些路徑 - 只需鍵入'g ++ main.cpp ...' – 2012-07-31 11:33:29

回答

1

創建一個Makefile:

CXXFLAGS=-I /usr/local/include -O3 -DSOMETHING 
LDFLAGS=-L /usr/local/lib 
LIBS=-lwhatever 

main: main.o 
    $(LD) -o [email protected] $* $(LDFLAGS) $(LIBS) 

main.o: main.cpp 

然後只需鍵入make在命令提示符下:

$ make 
+0

'CCFLAGS'應該是用於C++文件的'CXXFLAGS','LIBS'應該是'LDLIBS'。如果你這樣做,那麼你甚至不需要'main.o'和'main'的規則,隱式規則將會很好 – 2012-07-31 11:44:55

+0

@JonathanWakely謝謝;實際上它應該是'CXXFLAGS'。 – trojanfoe 2012-07-31 11:46:59

+0

是的我沒有注意到它是一個C++文件。注: LIBS仍然是錯誤的,你仍然不需要目標 – 2012-07-31 11:49:29

0

trojanfoe幾乎是正確的,但生成文件不使用傳統的名字。如果有,那就更簡單:

CXXFLAGS=-I /usr/local/include -O3 -DSOMETHING 
LDFLAGS=-L /usr/local/lib 
LDLIBS=-lwhatever 

隨着該makefile文件,你可以只輸入make main,並會利用其隱含規則編譯一個C++文件

+0

有用,謝謝! – HanXu 2012-08-01 00:43:23