我有一个包含函数声明的头文件,我们称之为A.h,我在文件A1.cpp中实现了这个函数。现在A1.cpp有其他文件包含。并非所有包含在A1.cpp中的文件都可用(第三方问题)。现在我的问题是,是否有可能从一个文件进行函数调用让我们说main.cpp,动态链接到A1.cpp(没有编译A1.cpp),因为我有一些来自第三方的文件不可用?链接C++文件
我的猜测是否定的,因为除非我包含可用的文件,否则我无法获得A1.cpp的对象文件,因此我无法调用函数。然而纠正我,如果我错了,一个编译文件的A1.cpp ie A1.o仍然可以使用,因为我可以链接到它,因此使函数调用不依赖于其他包含文件(我没有?)
对我来说很容易,我不是一个C++的家伙:-)!任何帮助或在这个问题的见解表示赞赏!哦,顺便说一句,我已经开始使用ndk的机器人,因此麻烦:-)
如何链接到只包含函数声明的A.o将获得A1.cpp中定义的函数定义?这是甚至可能的,只是想知道...我猜不是我所能想到的.. – GodOnScooter 2011-03-09 22:33:33
在编译'A.o'时,有所有必需的源文件可用。所以,你将第三方关闭的东西当作预编译的二进制blob。这足以链接到。您可以使用的接口为明文“A.h”。应该管用。以这种形式获得商业图书馆很常见(静态图书馆)。 虽然你也需要其他二进制blob'blahblah.o'来满足'A.o'的依赖关系。 – 2011-03-09 22:39:54
嗯..这实际上是有道理的,但如果blahblah.h有其他依赖项作为其他包含的文件,我会需要所有其他相关的二进制blob,所以我想我要找的答案是获取所有依赖项的二进制blob如果有的话),然后我可以成为快乐的男人,否则我是死鸭子:-) – GodOnScooter 2011-03-09 22:50:39