2013-06-29 89 views
0

我有兩個使用Makefiles的C項目。一個提供了一個我想在其他項目中使用的庫。更具體地講,結構如下兩個C Makefile項目,一個由另一個使用

. 
├── hiredis 
│   ├── Makefile 
│   ├── hiredis.h 
│   └── ... 
├── qemu 
│   ├── Makefile 
│   ├── source_code.c 
│   └── ... 

內QEMU的項目 - 在某些文件source_code.c - 我想包括hiredis.h頭文件。我不認爲簡單地將hiredis目錄添加到qemu樹中是正確的。

什麼是在qemu項目中使用庫的最佳方式(沒有IDE)?

回答

1

如果hiredisqemu總是在固定/已知位置的同一棵樹上,我會使用一個-I../hiredis CPP標誌。

爲了靈活性,您可以參數化hiredis的位置。但我只會在真正需要時才這樣做;讓事情變得簡單讓人放鬆。

順便說一句,使用沒有IDE的Makefiles非常棒:完全控制和洞察力。所以享受!

+0

謝謝你的回答。我嘗試使用'./configure ... -I '來添加cflag,這似乎可行。但是當我調用'make'時,我從'ld'得到一個'undefined reference'錯誤。我是否也需要添加一些ldflags? –

+0

鏈接器當然需要知道'hiredis'二進制文件的位置。通常將所有對象('.o')合併到一個單獨的檔案中'libhiredis.a'(需要前綴'lib')。然後你需要添加'-L <目錄 - hiredis-archive>'和'-lhiredis'' LDFLAGS'。請'加'我的答案和這些評論作爲我的獎勵:-) –

相關問題