2013-06-29 23 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'。请'加'我的答案和这些评论作为我的奖励:-) –

相关问题