这个问题已被无数次回答 - 有一些我已经读过的类似问题,但我仍然不理解。
我有libaiml项目的来源 - 一个C ++的interrepter for aiml一个chatterbox程序的规范。
在示例程序的源代码中,它包含对头文件的#include调用:
#include "../src/aiml.h"
头文件在那里,我编译并链接了程序,它声明无法找到头文件。
各种答案都说头文件需要编译成静态库(.a文件)但是当程序没有编译成库二进制文件时,程序如何引用.h文件?
此外,我尝试将srcs编译为带有G ++和ar的库,但它包含很多错误。 我做错了吗?
答案 0 :(得分:1)
我做错了吗?
是的:你完全错误地说明了实际发生在你身上的事情。你说“它说明找不到头文件”,“我编译并链接了程序”。
但真正发生的事情是你已经编译并失败来链接程序,并且错误 nothing 与头文件有关;相反,你在链接时会丢失符号。
要解决您的问题,必须将libaiml
库链接到您的可执行文件(此库应该是在{{1}内置时构建的这样的东西应该可以工作:
../src/