如何编译使用源头文件的应用程序?

时间:2012-07-14 09:16:24

标签: c++ static linker libraries

这个问题已被无数次回答 - 有一些我已经读过的类似问题,但我仍然不理解。

我有libaiml项目的来源 - 一个C ++的interrepter for aiml一个chatterbox程序的规范。

在示例程序的源代码中,它包含对头文件的#include调用:

#include "../src/aiml.h"

头文件在那里,我编译并链接了程序,它声明无法找到头文件。

各种答案都说头文件需要编译成静态库(.a文件)但是当程序没有编译成库二进制文件时,程序如何引用.h文件?

此外,我尝试将srcs编译为带有G ++和ar的库,但它包含很多错误。 我做错了吗?

1 个答案:

答案 0 :(得分:1)

  

我做错了吗?

是的:你完全错误地说明了实际发生在你身上的事情。你说“它说明找不到头文件”,“我编译并链接了程序”。

但真正发生的事情是你已经编译并失败来链接程序,并且错误 nothing 与头文件有关;相反,你在链接时会丢失符号。

要解决您的问题,必须libaiml 链接到您的可执行文件(此库应该是在{{1}内置时构建的这样的东西应该可以工作:

../src/
相关问题