我在link上执行“使用”真正“交叉编译器”描述的指南。在指南的底部有一个标准的makefile。我用C编写了一个简单的程序,并用命令让它运行。现在我想用库“ev3c.h”编写一个程序。我怎样才能在makefile中添加这个库?在makefile上添加库
回答
顶端如果您正在使用gcc或铿锵,通过-I /home/daniele/ev3c/include
给它你的食谱。 这将允许您从#include "someheader"
从该路径#include
。
至于化妆处理的包含文件而言,他们通常是隐含的依赖关系,这是你平时不想提及他们在你的依赖关系明确,因为编译器,如clang
或gcc
可以检测到它们和将它们添加到适当的Makefile规则中。
-MMD -MF somefile
允许你做这样的#include依赖检测用gcc或铿锵:
例如:
%.o: %.c
$(COMPILE.c) -I /home/daniele/ev3c/include $(OUTPUT_OPTION) $< -MMD -MF $(patsubst %.o,%.o.d,[email protected])
-include $(wildcard *.o.d)
这将有编译器检测包括每个编译的C文件和依赖性-include
行会将这些依赖关系添加到您的Makefile中,因此如果您的C文件包含"foo.h"
和foo.h更改,即使您没有提及foo.h
作为显式依赖关系,make
也会触发重新编译。
您的.h文件是标题。头文件包含在源代码中,而不是像编译时那样在编译时:
#include "ev3c.h"
例如。
库有一个不同的扩展名,例如.a。您将添加libev3c.a与:
-lev3c
您的makefile中调用您的编译器的行。但是,你有一个头,所以只需添加的#include“ev3c.h”到您的源代码(.c文件)
您可能还需要在命令行中添加'-I/home/daniele/ev3c/include'或者'-L/home/daniele/ev3c/lib' - 路径来自注释,并且也许可以通过'EV3CDIR = $ {HOME}/ev3c'作为宏来处理,然后在make规则中使用'$ {EV3CDIR}'。 –
- 1. 将共享库路径添加到Makefile
- 2. 添加class.h和class.cpp到MAKEFILE
- 3. 附加库.h到makefile
- 4. 如何添加静态库和pthread到Makefile?
- 5. 错误上添加sqllite3库
- 6. 在CodeLite上添加外部库
- 7. 将Makefile添加到Qt生成的Makefile中
- 8. 如何将cronjob添加到makefile?
- 9. 通过Makefile将目录添加到PATH
- 10. 从MPC添加MAKEFLAGS(Makefile,Project和Workspace Creator)
- 11. Makefile将自己添加为目标
- 12. Makefile文件库
- 13. Makefile - 包含库
- 14. 如何调整configure.ac以在最终的Makefile中添加库目标?
- 15. 的Makefile:添加新规则到规则包括在其他的makefile
- 16. 共享库,makefile。库路径
- 17. 库更新和Makefile
- 18. Makefile For Windows在Windows上
- 19. 在Makefile上关闭virtualenv
- 20. makefile上的patsubst
- 21. 在Windows上添加Monodevelop 2.2.2中的数据库加载项?
- 22. 如何在makefile中添加多行注释
- 23. 如何在Makefile中添加额外的源文件
- 24. 在不编辑的情况下添加编译器选项Makefile
- 25. C Makefile - 如何在构建时添加头文件(linux内核)?
- 26. 如何添加库在C
- 27. 在Orchard中添加jQuery库
- 28. 永久添加库在Python
- 29. UnSupportedClassVersionError添加库
- 30. LIBADD不会在Ubuntu上添加一个libtool库到另一个库上?
这是一个标题。将其包含在您的源代码中。链接一个库(libblah.a例如使用-lblah作为编译选项 – rscarson
对不起,但我不明白你的意思。我的ev3c.h路径是/ home/daniele/ev3c/include。我怎样才能插入这个在makefile中? – Daniele